diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -35,13 +35,13 @@
 
 # ------------------------------------------------------------
 
-CABAL_OPTIONS	= 
+CABAL_OPTIONS	= --global
 
 cabal		:
 		$(MAKE) cabal_configure cabal_build cabal_doc cabal_install
 
 cabal_configure :
-		runhaskell $(SETUP) configure --global $(CABAL_OPTIONS)
+		runhaskell $(SETUP) configure $(CABAL_OPTIONS)
 
 cabal_doc	:
 		$(HSCOLOUR) -print-css > $(HSCOLOUR)
@@ -164,7 +164,8 @@
 		; cd $(DIST) || exit 1 \
 		; runhaskell $(SETUP) configure $(CABAL_OPTIONS) || exit 1 \
 		; runhaskell $(SETUP) build || exit 1 \
-		; $(INSTALL) sudo runhaskell $(SETUP) install --global $(INSTEND) \
+		; $(MAKE) cabal_doc || exit 1 \
+		; $(INSTALL) sudo runhaskell $(SETUP) install $(CABAL_OPTIONS) $(INSTEND) \
 		)
 
 distinstall	:
diff --git a/Version.mk b/Version.mk
--- a/Version.mk
+++ b/Version.mk
@@ -2,6 +2,6 @@
 # Version numbering for HXT
 
 SOFTWARE	= hxt
-VERSION		= 8.2.0
-LASTVERSION	= 8.1.2
+VERSION		= 8.3.0
+LASTVERSION	= 8.2.0
 DIST_NAME	= $(SOFTWARE)-$(VERSION)
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ArrowIO.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ArrowIf.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ArrowList.html"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ArrowNF.html b/doc/hdoc/Control-Arrow-ArrowNF.html
--- a/doc/hdoc/Control-Arrow-ArrowNF.html
+++ b/doc/hdoc/Control-Arrow-ArrowNF.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ArrowNF.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ArrowState.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ArrowTree.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-IOListArrow.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-IOStateListArrow.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ListArrow.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-ListArrows.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Arrow-StateListArrow.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Data-AssocList.html"
 >Source code</A
diff --git a/doc/hdoc/Data-Atom.html b/doc/hdoc/Data-Atom.html
--- a/doc/hdoc/Data-Atom.html
+++ b/doc/hdoc/Data-Atom.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Data-Atom.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Data-Char-UTF8.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Data-NavTree.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Data-Tree-Class.html"
 >Source code</A
diff --git a/doc/hdoc/Data-Tree-NTree-Filter.html b/doc/hdoc/Data-Tree-NTree-Filter.html
deleted file mode 100644
--- a/doc/hdoc/Data-Tree-NTree-Filter.html
+++ /dev/null
@@ -1,3779 +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
->Data.Tree.NTree.Filter</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
-><TD CLASS="topbut"
-><A HREF="src/Data-Tree-NTree-Filter.html"
->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"
->Data.Tree.NTree.Filter</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
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><B
->Contents</B
-></TD
-></TR
-><TR
-><TD
-><DL
-><DT
-><A HREF="#1"
->Filter
-</A
-></DT
-><DT
-><A HREF="#2"
->Monadic Filter
-</A
-></DT
-></DL
-></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: Filter.hs,v 1.6 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
->Filter for n-ary tree structure with filter combinators
-copied and modified from HxXml (<A HREF="http://www.cs.york.ac.uk/fp/HaXml/"
->http://www.cs.york.ac.uk/fp/HaXml/</A
->)
-</P
-><P
->Similar but more flexible functions for tree processing are defined in the
-arrow classes <A HREF="Control-Arrow-ArrowList.html"
->Control.Arrow.ArrowList</A
->, <A HREF="Control-Arrow-ArrowIf.html"
->Control.Arrow.ArrowIf</A
->, <A HREF="Control-Arrow-ArrowTree.html"
->Control.Arrow.ArrowTree</A
-> and <A HREF="Control-Arrow-ArrowState.html"
->Control.Arrow.ArrowState</A
->.
-For new applications, especially for XML processing, it's recommended to use the arrow interface
-<A HREF="Text-XML-HXT-Arrow.html"
->Text.XML.HXT.Arrow</A
-> instead of this filter approach as part of the api <A HREF="Text-XML-HXT-Parser.html"
->Text.XML.HXT.Parser</A
->
-</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"
->module <A HREF="Data-Tree-NTree-TypeDefs.html"
->Data.Tree.NTree.TypeDefs</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ATFilter"
->TFilter</A
-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ATSFilter"
->TSFilter</A
-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asatisfies"
->satisfies</A
-> ::  (a -&gt; [b]) -&gt; a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Anone"
->none</A
-> ::  a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Athis"
->this</A
-> ::  a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOf"
->isOf</A
-> ::  (a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfNode"
->isOfNode</A
-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNTree"
->mkNTree</A
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceNode"
->replaceNode</A
-> ::  node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceChildren"
->replaceChildren</A
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyNode"
->modifyNode</A
-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
->Maybe</A
-> node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyNode0"
->modifyNode0</A
-> ::  (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyChildren"
->modifyChildren</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
->TSFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubstChildren"
->substChildren</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessChildren"
->processChildren</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ao"
->o</A
-> ::  (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A.%3E"
->(.&gt;)</A
-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AseqF"
->seqF</A
-> ::  [a -&gt; [a]] -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A..%3E"
->(..&gt;)</A
-> ::  (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%2B%2B"
->(+++)</A
-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acat"
->cat</A
-> ::  [a -&gt; [b]] -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AorElse"
->orElse</A
-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiff"
->iff</A
-> ::  (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Achoice"
->choice</A
-> ::  [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
->IfThen</A
-> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
->  <A HREF="#t%3AIfThen"
->IfThen</A
-> a b = a <A HREF="#v%3A%3A-%3E"
->:-&gt;</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awhen"
->when</A
-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwhenNot"
->whenNot</A
-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aguards"
->guards</A
-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aneg"
->neg</A
-> ::  (a -&gt; [c]) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acontaining"
->containing</A
-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotContaining"
->notContaining</A
-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2F%3E"
->(/&gt;)</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%3C%2F"
->(&lt;/)</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adeep"
->deep</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adeepest"
->deepest</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amulti"
->multi</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessBottomUp"
->processBottomUp</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessBottomUpIfNot"
->processBottomUpIfNot</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDown"
->processTopDown</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDownUntil"
->processTopDownUntil</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinsertChildrenAt"
->insertChildrenAt</A
-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinsertChildrenAfter"
->insertChildrenAfter</A
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AthisM"
->thisM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; a -&gt; m [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnoneM"
->noneM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; a -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A.%3E%3E"
->(.&gt;&gt;)</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AseqM"
->seqM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%2B%2B%3E%3E"
->(+++&gt;&gt;)</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcatM"
->catM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AifM"
->ifM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchoiceM"
->choiceM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
->IfThen</A
-> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwhenM"
->whenM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwhenNotM"
->whenNotM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AguardsM"
->guardsM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcontainingM"
->containingM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessChildrenM"
->processChildrenM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDownM"
->processTopDownM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessBottomUpM"
->processBottomUpM</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AliftMf"
->liftMf</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%24"
->($$)</A
-> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%24%3C"
->($$&lt;)</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AperformAction"
->performAction</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m b) -&gt; a -&gt; m [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"
->module <A HREF="Data-Tree-NTree-TypeDefs.html"
->Data.Tree.NTree.TypeDefs</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ATFilter"
-></A
-><B
->TFilter</B
-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#TFilter"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->tree filter type: a function mapping a tree onto a list of trees
-</P
-><P
->filter can be used in various ways, as predicates, selectors, transformers, ...
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ATSFilter"
-></A
-><B
->TSFilter</B
-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#TSFilter"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->a filter for sequences
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Asatisfies"
-></A
-><B
->satisfies</B
-> ::  (a -&gt; [b]) -&gt; a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#satisfies"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->satisfies converts a result of a predicate filter into a boolean
-</P
-><P
->is a shortcut for not . null
-</P
-><P
->typical use in guards or ifs: <TT
->if (satisfies f) t then ... else ... </TT
->
-</P
-><UL
-><LI
-> 1.parameter f :  the predicate filter
-</LI
-><LI
-> 2.parameter t :  the tree to be tested
-</LI
-><LI
-> returns : <TT
->b = not (null (f t))</TT
->
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="1"
->Filter
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Anone"
-></A
-><B
->none</B
-> ::  a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#none"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the null filter, returns the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Athis"
-></A
-><B
->this</B
-> ::  a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#this"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the unit filter, returns the single element list containing the argument
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisOf"
-></A
-><B
->isOf</B
-> ::  (a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#isOf"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->conversion from predicate function to filter
-</P
-><UL
-><LI
-> 1.parameter p :  the predicate for testing the tree
-</LI
-><LI
-> returns : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
->this</A
-></TT
-> or <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
-> depending on the predicate
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisOfNode"
-></A
-><B
->isOfNode</B
-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#isOfNode"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->select filter, selects trees with node values with a specific property
-</P
-><UL
-><LI
-> 1.parameter p :  the predicate for testing the node value
-</LI
-><LI
-> returns : <TT
->[]</TT
-> or <TT
->[t]</TT
-> depending on <TT
->p t</TT
->
-</LI
-></UL
-><P
->a special case of <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"
->isOf</A
-></TT
-> filter
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkNTree"
-></A
-><B
->mkNTree</B
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#mkNTree"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for substituting an arbitray tree by a constant
-</P
-><UL
-><LI
-> 1.parameter t :  the result tree, the input tree is ignored
-</LI
-><LI
-> returns : the filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AreplaceNode"
-></A
-><B
->replaceNode</B
-> ::  node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#replaceNode"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for replacing the node
-</P
-><UL
-><LI
-> 1.parameter n :  the new node
-</LI
-><LI
-> returns : the editing filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AreplaceChildren"
-></A
-><B
->replaceChildren</B
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#replaceChildren"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for replacing the children
-</P
-><UL
-><LI
-> 1.parameter cs :  cs the list of children
-</LI
-><LI
-> returns : the filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmodifyNode"
-></A
-><B
->modifyNode</B
-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
->Maybe</A
-> node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#modifyNode"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmodifyNode0"
-></A
-><B
->modifyNode0</B
-> ::  (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#modifyNode0"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for editing the node
-</P
-><UL
-><LI
-> 1.parameter nf :  the XNode editing funtion
-</LI
-><LI
-> returns : the filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmodifyChildren"
-></A
-><B
->modifyChildren</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
->TSFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#modifyChildren"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for editing the children
-</P
-><P
->all children are processed with a filter mapping lists to lists,
- this enables not only elementwise editing by lifting a normal
- filter to a list filter with <TT
->(f $$)</TT
-> (see '($$)') but also manipulation
- of the order of the elements, e.g. <A HREF="reverse.html"
->reverse</A
-> is an appropriate childen
- editing function.
-</P
-><UL
-><LI
-> 1.parameter csf :  the children editing function
-</LI
-><LI
-> returns : the filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
->processChildren</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AsubstChildren"
-></A
-><B
->substChildren</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#substChildren"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for substituting the children of a tree by
- a new list of childen computed by applying a filter to the input tree.
- <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
->modifyChildren</A
-></TT
-> can be expressed by <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"
->substChildren</A
-></TT
->:
- <TT
->modifyChildren f t</TT
-> is equal to <TT
->substChildren (f . getChildren)</TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessChildren"
-></A
-><B
->processChildren</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processChildren"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Filter for editing the children of a tree element wise
-</P
-><UL
-><LI
-> 1.parameter cf :  the filter applied to the children
-</LI
-><LI
-> returns : the editing filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
->modifyChildren</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Ao"
-></A
-><B
->o</B
-> ::  (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#o"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->sequential composition of filters, usually written in infix notation f2 <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
->o</A
-></TT
-> f1.
-</P
-><P
->for predicate filter the logical AND
-</P
-><UL
-><LI
-> 1.parameter f2 :  the 2. filter
-</LI
-><LI
-> 2.parameter f1 :  the 1. filter
-</LI
-><LI
-> returns : the fiter applying first f1 to n and then f2 to the result (like function composition)
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A.%3E"
-></A
-><B
->(.&gt;)</B
-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#.%3E"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pronounced &quot;followed by&quot;, defined as: <TT
->f .&gt; g = g `o` f</TT
->.
-</P
-><P
->allows filter composition in a more readable way from left to right
-</P
-><UL
-><LI
-> 1.parameter f1 :  the 1. filter
-</LI
-><LI
-> 2.parameter f2 :  the 2. filter
-</LI
-><LI
-> returns : the composition of f1 and f2
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
->o</A
-></TT
->, '(..&gt;)'
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AseqF"
-></A
-><B
->seqF</B
-> ::  [a -&gt; [a]] -&gt; a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#seqF"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND
-</P
-><P
->see also : '(.&gt;)'
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A..%3E"
-></A
-><B
->(..&gt;)</B
-> ::  (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#..%3E"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->special sequential composition.
-</P
-><P
->filter f is applied to an argument t.
- then filter g is applied to all elements of the result list,
- but the argument t is also passed as extra parameter to g.
-</P
-><P
->This allows for step by step transformations of a tree
- with access to the original tree in every
- transformation step.
-</P
-><P
->see also : '(.&gt;)', <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
->o</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%2B%2B%2B"
-></A
-><B
->(+++)</B
-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#%2B%2B%2B"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->binary parallel composition, the logical OR for predicate filter
-</P
-><UL
-><LI
-> 1.parameter f1 :  the 1. filter
-</LI
-><LI
-> 2.parameter f2 :  the 2. filter
-</LI
-><LI
-> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Acat"
-></A
-><B
->cat</B
-> ::  [a -&gt; [b]] -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#cat"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply a list of filters, a &quot;union&quot; for lists, for predicate filters the generalized OR
-</P
-><UL
-><LI
-> 1.parameter fs :  the list of filters
-</LI
-><LI
-> returns : the composing filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AorElse"
-></A
-><B
->orElse</B
-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#orElse"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->directional choice, usually written in infix notation as f <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
->orElse</A
-></TT
-> g
-</P
-><UL
-><LI
-> 1.parameter f :  the 1. filter
-</LI
-><LI
-> 2.parameter g :  the 2. filter
-</LI
-><LI
-> 3.parameter t :  the tree
-</LI
-><LI
-> returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aiff"
-></A
-><B
->iff</B
-> ::  (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#iff"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->if then else lifted to filters
-</P
-><UL
-><LI
-> 1.parameter p :  the predicate filter
-</LI
-><LI
-> 2.parameter t :  the &quot;then&quot; filter
-</LI
-><LI
-> 3.parameter e :  the &quot;else&quot; filter
-</LI
-><LI
-> returns : the resulting conditional filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Achoice"
-></A
-><B
->choice</B
-> ::  [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
->IfThen</A
-> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#choice"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->multiway branch. The list of cases <TT
->f :-&gt; g</TT
-> is processed sequentially,
- in the first case for that f holds g is applied, if no case matches, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
-> is
- applied.
- This filter can be used like a case expression: <TT
->choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]</TT
->
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
->iff</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"
->choiceM</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->data</SPAN
->  <A NAME="t%3AIfThen"
-></A
-><B
->IfThen</B
-> a b </TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#IfThen"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->auxiliary datatype for cases within choice filter
-</TD
-></TR
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
->a <A NAME="v%3A%3A-%3E"
-></A
-><B
->:-&gt;</B
-> b</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Awhen"
-></A
-><B
->when</B
-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#when"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->when the predicate p holds, f is applied, else the identity filter this
-</P
-><UL
-><LI
-> 1.parameter f :  the conditinally applied filter
-</LI
-><LI
-> 2.parameter p :  the predicate
-</LI
-><LI
-> returns : the conditional filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
->iff</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
->whenNot</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
->guards</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
->whenM</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AwhenNot"
-></A
-><B
->whenNot</B
-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#whenNot"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the complementary filter of when
-</P
-><P
->shortcut for f <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
->when</A
-></TT
-> neg g
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
->iff</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
->when</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
->whenNotM</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"
->neg</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aguards"
-></A
-><B
->guards</B
-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#guards"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->when the predicate p holds, f is applied, else the null filter none
-</P
-><UL
-><LI
-> 1.parameter p :  the predicate filter
-</LI
-><LI
-> 2.parameter f :  the conditionally applied filter
-</LI
-><LI
-> returns : the conditional filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
->iff</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
->when</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
->guardsM</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aneg"
-></A
-><B
->neg</B
-> ::  (a -&gt; [c]) -&gt; a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#neg"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->negation lifted to filters
-</P
-><UL
-><LI
-> 1.parameter f :  the predicate filter
-</LI
-><LI
-> returns : the filter, that succeeds, when f failed
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Acontaining"
-></A
-><B
->containing</B
-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#containing"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pruning: keep only those results from f for which g holds, usually written in infix notation as f <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
->containing</A
-></TT
-> g
-</P
-><UL
-><LI
-> 1.parameter f :  the processing filter
-</LI
-><LI
-> 2.parameter g :  the predicate filter
-</LI
-><LI
-> 3.parameter t :  the tree
-</LI
-><LI
-> returns : all trees r from f t, for which g r holds (is not the empty list)
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
->notContaining</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AnotContaining"
-></A
-><B
->notContaining</B
-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#notContaining"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pruning: keep only those results from f for which g does not hold
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
->containing</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%2F%3E"
-></A
-><B
->(/&gt;)</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#%2F%3E"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->pronounced &quot;slash&quot;, meaning g inside f
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%3C%2F"
-></A
-><B
->(&lt;/)</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#%3C%2F"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->pronounced &quot;outside&quot; meaning f containing g
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Adeep"
-></A
-><B
->deep</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#deep"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->top down search.
-</P
-><P
->search terminates, when filter f succeeds
- can e.g. be used for finding all outermost tag node of a specific kind
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Adeepest"
-></A
-><B
->deepest</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#deepest"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->bottom up search.
-</P
-><P
->first the children are processed,
- if this does not succeed, the node itself is processed
- can e.g. be used for finding all innermost tag nodes of a specific kind
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Amulti"
-></A
-><B
->multi</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#multi"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all nodes of the whole tree.
-</P
-><P
->can e.g. be used for finding all nodes of a specific kind
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessBottomUp"
-></A
-><B
->processBottomUp</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUp"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->bottom up transformation
-</P
-><UL
-><LI
-> 1.parameter f :  the <EM
->simple</EM
-> transforming filter
-</LI
-><LI
-> returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
->processTopDown</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"
->processBottomUpIfNot</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessBottomUpIfNot"
-></A
-><B
->processBottomUpIfNot</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUpIfNot"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->guarded bottom up transformation, stops at subtrees for which a predicate p holds
-</P
-><UL
-><LI
-> 1.parameter f :  the transforming filter
-</LI
-><LI
-> 2.parameter p :  the predicate filter for the guard
-</LI
-><LI
-> returns : the filter for processing all (sub-)trees
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
->processBottomUp</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessTopDown"
-></A
-><B
->processTopDown</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processTopDown"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->top down transformation
-</P
-><UL
-><LI
-> 1.parameter f :  the <EM
->simple</EM
-> transforming filter
-</LI
-><LI
-> returns : the filter that applies f first to the tree and then recursively to all subtrees of the result
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
->processBottomUp</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessTopDownUntil"
-></A
-><B
->processTopDownUntil</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processTopDownUntil"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->top down transformation until a node to be transformed is found
-</P
-><UL
-><LI
-> 1.parameter f :  the <EM
->simple</EM
-> transforming filter
-</LI
-><LI
-> returns : the filter that applies f first to the tree and, if the filter does not succeed,
-		  recursively to all children of the input tree.
-</LI
-></UL
-><P
->Example:
-</P
-><PRE
->processTopDownUntil none</PRE
-><P
->is the identity filter (maybe a bit more inefficient).
-</P
-><P
->Example:
-</P
-><PRE
->processTopDownUntil (add1Attr &quot;border&quot; &quot;2&quot; `containing` isTag &quot;table&quot;)</PRE
-><P
->is a filter for adding an attribute border=&quot;2&quot; in all top level table tags.
-		  The content of table tags will remain unchanged.
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
->processTopDown</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
->processBottomUp</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AinsertChildrenAt"
-></A
-><B
->insertChildrenAt</B
-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#insertChildrenAt"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->insertion of trees into the list of children at a given position
-</P
-><P
->useful for inserting something into the list of children at a given position
- the list of children is split with the <TT
->splitAt</TT
-> function
- the nodes are inserted between these two sublists.
-</P
-><P
->examples: <TT
->insertChildrenAt 0 ins t</TT
-> inserts all elements computed with <TT
->ins t</TT
-> in front
- of the childen of <TT
->t</TT
->, <TT
->insertChildrenAt 1 ins t</TT
-> behind the first child
-</P
-><P
->see also: <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"
->insertChildrenAfter</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AinsertChildrenAfter"
-></A
-><B
->insertChildrenAfter</B
-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#insertChildrenAfter"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->insertion of trees into the list of children after specific elements
-</P
-><P
->useful for inserting something into the list of children of a node
- the list of children is split with the <TT
->span</TT
-> function and the filter p as predicate
- the nodes are inserted between these two sublists
-</P
-><P
->examples: <TT
->insertChildrenAfter none ins t</TT
-> inserts all elements computed with <TT
->ins t</TT
-> in front
- of the childen of <TT
->t</TT
->, <TT
->insertChildrenAfter this ins t</TT
-> appends the elements to the children
-</P
-><P
->see also: <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"
->insertChildrenAt</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="2"
->Monadic Filter
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AthisM"
-></A
-><B
->thisM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; a -&gt; m [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#thisM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the monadic version of the identity filter this.
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
->this</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AnoneM"
-></A
-><B
->noneM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; a -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#noneM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the monadic version of the null filter none.
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A.%3E%3E"
-></A
-><B
->(.&gt;&gt;)</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#.%3E%3E"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->sequential composition of monadic filters, monadic version of &quot;.&gt;&quot;.
-</P
-><UL
-><LI
-> 1.parameter f1 :  the 1. monadic filter
-</LI
-><LI
-> 2.parameter f2 :  the 2. monadic filter
-</LI
-><LI
-> returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)
-</LI
-></UL
-><P
->see also : '(.&gt;)'
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AseqM"
-></A
-><B
->seqM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#seqM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->generalized sequential composition of monadic filters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%2B%2B%2B%3E%3E"
-></A
-><B
->(+++&gt;&gt;)</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#%2B%2B%2B%3E%3E"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->binary parallel composition, the logical OR for predicate filter
-</P
-><UL
-><LI
-> 1.parameter f1 :  the 1. filter
-</LI
-><LI
-> 2.parameter f2 :  the 2. filter
-</LI
-><LI
-> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
- see also: <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
->+++</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"
->catM</A
-></TT
->
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AcatM"
-></A
-><B
->catM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#catM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply a list of monadic filters
-</P
-><UL
-><LI
-> 1.parameter fs :  the list of filters
-</LI
-><LI
-> returns : the composing filter
- see also: <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
->+++</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"
->+++&gt;&gt;</A
-></TT
->
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AifM"
-></A
-><B
->ifM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#ifM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->monadic if-then-else.
-</P
-><UL
-><LI
-> 1.parameter p :  the predicate
-</LI
-><LI
-> 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree
-</LI
-><LI
-> 3.parameter elseP :  the else part
-</LI
-><LI
-> returns : the monadic filter for the conditional
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AchoiceM"
-></A
-><B
->choiceM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
->IfThen</A
-> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#choiceM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->monadic version of multiway branch. The list of cases <TT
->f :-&gt; g</TT
-> is processed sequentially,
- in the first case for that f holds g is applied, if no case matches, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->noneM</A
-></TT
-> is
- applied.
- This filter can be used like a case expression: <TT
->choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]</TT
->
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"
->choice</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
->ifM</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AwhenM"
-></A
-><B
->whenM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#whenM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->when the predicate p holds, the monadic filter f is applied, else the identity filter.
-</P
-><UL
-><LI
-> 1.parameter f :  the conditinally applied monadic filter
-</LI
-><LI
-> 2.parameter p :  the simple predicate
-</LI
-><LI
-> returns : the conditional filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
->ifM</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
->when</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
->guardsM</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
->whenNotM</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AwhenNotM"
-></A
-><B
->whenNotM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#whenNotM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the complementary filter of whenM.
-</P
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
->ifM</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
->whenM</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
->whenNot</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AguardsM"
-></A
-><B
->guardsM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#guardsM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->when the predicate p holds, the monadic filter f is applied, else the null filter.
-</P
-><UL
-><LI
-> 1.parameter p :  the simple predicate filter
-</LI
-><LI
-> 2.parameter f :  the conditionally applied monadic filter
-</LI
-><LI
-> returns : the conditional filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
->ifM</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
->guards</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
->whenM</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AcontainingM"
-></A
-><B
->containingM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#containingM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pruning: monadic version of containing, usually written in infix notation as f <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"
->containingM</A
-></TT
-> g
-</P
-><UL
-><LI
-> 1.parameter f :  the monadic processing filter
-</LI
-><LI
-> 2.parameter g :  the predicate filter
-</LI
-><LI
-> 3.parameter t :  the tree
-</LI
-><LI
-> returns : all trees r from f t, for which g r holds (is not the empty list)
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
->notContaining</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessChildrenM"
-></A
-><B
->processChildrenM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processChildrenM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Filter for editing the children of a tree with a monadic filter
-</P
-><UL
-><LI
-> 1.parameter cf :  the monadic filter applied to the children
-</LI
-><LI
-> returns : the monadic editing filter
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
->processChildren</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessTopDownM"
-></A
-><B
->processTopDownM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processTopDownM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->monadic variant of <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
->processTopDown</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessBottomUpM"
-></A
-><B
->processBottomUpM</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUpM"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->monadic variant of <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
->processBottomUp</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AliftMf"
-></A
-><B
->liftMf</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#liftMf"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->lift a filter to a monadic filter
-</P
-><UL
-><LI
-> 1.parameter f :  the <EM
->simple</EM
-> filter
-</LI
-><LI
-> returns : the lifted monadic version
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%24%24"
-></A
-><B
->($$)</B
-> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#%24%24"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->infix operator for applying a filter to a list of trees
-</P
-><UL
-><LI
-> 1.parameter f :  the filter
-</LI
-><LI
-> 2.parameter ts :  the list of trees
-</LI
-><LI
-> returns : the concatenated list of results
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%24%24%3C"
-></A
-><B
->($$&lt;)</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#%24%24%3C"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->infix operator for applying a monadic filter to a list of trees,
- typically used in do-notation for processing of intermediate results.
-</P
-><UL
-><LI
-> 1.parameter f :  the monadic filter
-</LI
-><LI
-> 2.parameter ts :  the list of trees
-</LI
-><LI
-> returns : the concatenated list of results
-</LI
-></UL
-><P
->see also : '($$)'
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AperformAction"
-></A
-><B
->performAction</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
->Monad</A
-> m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Data-Tree-NTree-Filter.html#performAction"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->run an arbitray command on a tree t and return the tree,
- used for inserting arbitray commands in a filter pipeline
-</P
-><UL
-><LI
-> 1.parameter cmd :  the command
-</LI
-><LI
-> 2.parameter t :  the argument tree
-</LI
-><LI
-> returns : the unchanged tree as a single element list
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 2.3.0</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Data-Tree-NTree-TypeDefs.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-DTDProcessing.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.Arrow.DocumentOutput</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
@@ -58,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->state arrows for document output
-</P
-><P
->version: $Id: DocumentOutput.hs,v 1.7 2006<EM
->11</EM
->02 09:34:08 hxml Exp $
-</P
-></TD
+>State arrows for document output
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-Edit.html"
 >Source code</A
@@ -308,6 +308,24 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3ApreventEmptyElements"
+>preventEmptyElements</A
+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a =&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</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%3AremoveComment"
 >removeComment</A
 > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
@@ -1147,6 +1165,36 @@
 ></TT
 >
 </P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3ApreventEmptyElements"
+></A
+><B
+>preventEmptyElements</B
+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a =&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Edit.html#preventEmptyElements"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-Namespace.html"
 >Source code</A
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: Namespace.hs,v 1.13 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
 >namespace specific arrows
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -111,7 +104,7 @@
 >attachNsEnv</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"
+> a =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -223,13 +216,13 @@
 >processWithNsEnv</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"
+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</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"
+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -247,13 +240,13 @@
 >processWithNsEnvWithoutAttrl</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"
+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</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"
+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -351,7 +344,7 @@
 >attachNsEnv</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"
+> a =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -611,13 +604,13 @@
 >processWithNsEnv</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"
+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</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"
+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -658,13 +651,13 @@
 >processWithNsEnvWithoutAttrl</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"
+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</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"
+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -867,16 +860,20 @@
 ><P
 >Result is the list of errors concerning namespaces.
  Predicates <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName"
 >isWellformedQName</A
 ></TT
 >, <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"
 >isWellformedQualifiedName</A
 ></TT
->, isDeclaredNamespaces
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisDeclaredNamespace"
+>isDeclaredNamespace</A
+></TT
+>
  and <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNSDecl"
 >isWellformedNSDecl</A
 ></TT
 > are applied to the appropriate elements and attributes.
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html"
 >Source code</A
@@ -81,34 +81,31 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->Version    : $Id$
-</P
-><P
 >Pickler functions for converting between user defined data types
-and XmlTree data. Usefull for persistent storage and retreival
-of arbitray data as XML documents
+   and XmlTree data. Usefull for persistent storage and retreival
+   of arbitray data as XML documents
 </P
 ><P
 >This module is an adaptation of the pickler combinators
-developed by Andrew Kennedy
-( http://research.microsoft.com/~akenn/fun/picklercombinators.pdf )
+   developed by Andrew Kennedy
+   ( http://research.microsoft.com/~akenn/fun/picklercombinators.pdf )
 </P
 ><P
 >The difference to Kennedys approach is that the target is not
-a list of Chars but a list of XmlTrees. The basic picklers will
-convert data into XML text nodes. New are the picklers for
-creating elements and attributes.
+   a list of Chars but a list of XmlTrees. The basic picklers will
+   convert data into XML text nodes. New are the picklers for
+   creating elements and attributes.
 </P
 ><P
 >One extension was neccessary: The unpickling may fail.
-Therefore the unpickler has a Maybe result type.
-Failure is used to unpickle optional elements
-(Maybe data) and lists of arbitray length
+   Therefore the unpickler has a Maybe result type.
+   Failure is used to unpickle optional elements
+   (Maybe data) and lists of arbitray length
 </P
 ><P
 >There is an example program demonstrating the use
-of the picklers for a none trivial data structure.
-(see &quot;examples/arrows/pickle&quot; directory)
+   of the picklers for a none trivial data structure.
+   (see &quot;examples/arrows/pickle&quot; directory)
 </P
 ></TD
 ></TR
@@ -267,8 +264,8 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetAtt"
 >getAtt</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
 >St</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
@@ -779,6 +776,22 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AxpElemQN"
+>xpElemQN</A
+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AxpElem"
 >xpElem</A
 > ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
@@ -815,6 +828,22 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AxpAttrQN"
+>xpAttrQN</A
+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AxpAttr"
 >xpAttr</A
 > ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
@@ -1213,8 +1242,8 @@
 ></A
 ><B
 >getAtt</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
 >St</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
@@ -2514,19 +2543,19 @@
 ><TABLE CLASS="declbar"
 ><TR
 ><TD CLASS="declname"
-><A NAME="v%3AxpElem"
+><A NAME="v%3AxpElemQN"
 ></A
 ><B
->xpElem</B
-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
+>xpElemQN</B
+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > a</TD
 ><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElem"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElemQN"
 >Source</A
 ></TD
 ></TR
@@ -2539,14 +2568,14 @@
 >Pickler for wrapping/unwrapping data into an XML element
 </P
 ><P
->Extra parameter is the element name. THE pickler for constructing
+>Extra parameter is the element name given as a QName. THE pickler for constructing
  nested structures
 </P
 ><P
 >Example:
 </P
 ><PRE
-> xpElem &quot;number&quot; $ xpickle
+> xpElemQN (mkName &quot;number&quot;) $ xpickle
 </PRE
 ><P
 >will map an (42::Int) onto
@@ -2565,6 +2594,44 @@
 ><TABLE CLASS="declbar"
 ><TR
 ><TD CLASS="declname"
+><A NAME="v%3AxpElem"
+></A
+><B
+>xpElem</B
+> ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>convenient Pickler for xpElemQN
+</P
+><PRE
+> xpElem n = xpElemQN (mkName n)
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpElemWithAttrValue"
 ></A
 ><B
@@ -2632,19 +2699,19 @@
 ><TABLE CLASS="declbar"
 ><TR
 ><TD CLASS="declname"
-><A NAME="v%3AxpAttr"
+><A NAME="v%3AxpAttrQN"
 ></A
 ><B
->xpAttr</B
-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
+>xpAttrQN</B
+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > a</TD
 ><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttr"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrQN"
 >Source</A
 ></TD
 ></TR
@@ -2663,6 +2730,44 @@
 ></TT
 > pickler
 </P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxpAttr"
+></A
+><B
+>xpAttr</B
+> ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>convenient Pickler for xpAttrQN
+</P
+><PRE
+> xpAttr n = xpAttrQN (mkName n)
+</PRE
 ></TD
 ></TR
 ><TR
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-Pickle.html"
 >Source code</A
@@ -1968,15 +1968,11 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->Pickler for storing/retreiving data into/from an attribute value
-</P
-><P
->The attribute is inserted in the surrounding element constructed by the <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElem"
->xpElem</A
-></TT
-> pickler
+>convenient Pickler for xpAttrQN
 </P
+><PRE
+> xpAttr n = xpAttrQN (mkName n)
+</PRE
 ></TD
 ></TR
 ><TR
@@ -2208,23 +2204,10 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->Pickler for wrapping/unwrapping data into an XML element
-</P
-><P
->Extra parameter is the element name. THE pickler for constructing
- nested structures
-</P
-><P
->Example:
-</P
-><PRE
-> xpElem &quot;number&quot; $ xpickle
-</PRE
-><P
->will map an (42::Int) onto
+>convenient Pickler for xpElemQN
 </P
 ><PRE
-> &lt;number&gt;42&lt;/number&gt;
+> xpElem n = xpElemQN (mkName n)
 </PRE
 ></TD
 ></TR
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html"
 >Source code</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html"
 >Source code</A
@@ -359,6 +359,17 @@
 </LI
 ><LI
 > <TT
+>a_strict_input</TT
+> : file input is done strictly using the Data.ByteString input functions. This ensures correct closing of files, especially when working with
+                     the tagsoup parser and not processing the whole input data. Default is off. The <TT
+>ByteString</TT
+> input usually is not faster than the buildin <TT
+>hGetContents</TT
+>
+		     for strings.
+</LI
+><LI
+> <TT
 >a_options_curl</TT
 > : deprecated but for compatibility reasons still supported.
                      More options passed to the curl binding.
@@ -432,12 +443,13 @@
 >reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is <TT
 >isoLatin1</TT
 >,
-parsing is done with tagsoup parser
+parsing is done with tagsoup parser, but input is read strictly
 </P
 ><PRE
 > readDocument [ (a_encoding, isoLatin1)
               , (a_mime_type,    &quot;/etc/mime.types&quot;)
-              , (a_tagsoup,    &quot;1&quot;)
+              , (a_tagsoup,      &quot;1&quot;)
+              , (a_strict_input, &quot;1&quot;)
               ] &quot;test.svg&quot;
 </PRE
 ><P
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html"
 >Source code</A
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: WriteDocument.hs,v 1.8 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-><P
 >Compound arrow for writing XML documents
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -256,6 +249,16 @@
 > <TT
 >a_output_html</TT
 > : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars
+</LI
+><LI
+> <TT
+>a_no_empty_elements</TT
+> : do not write the short form &lt;name .../&gt; for empty elements. When <TT
+>a_output_html</TT
+> is set,
+                          the always empty HTML elements are still written in short form, but not the others, as e.g. the script element.
+                          Empty script elements, like &lt;script href=&quot;...&quot;/&gt;, are always a problem for firefox and others.
+                          When XML output is generated with this option, all empty elements are written in the long form.
 </LI
 ><LI
 > <TT
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XPath.html b/doc/hdoc/Text-XML-HXT-Arrow-XPath.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-XPath.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XPath.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-XPath.html"
 >Source code</A
@@ -145,8 +145,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -183,8 +183,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -305,8 +305,8 @@
 >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; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -420,8 +420,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -511,8 +511,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -782,8 +782,8 @@
 >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; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html b/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html"
 >Source code</A
@@ -155,8 +155,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -193,8 +193,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -213,8 +213,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -233,8 +233,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -251,7 +251,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXP"
 >getXP</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
@@ -1110,8 +1110,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -1182,8 +1182,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -1219,8 +1219,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -1251,8 +1251,8 @@
 >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
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -1292,7 +1292,7 @@
 ></A
 ><B
 >getXP</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
 >NsEnv</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html"
 >Source code</A
@@ -81,11 +81,6 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->Version    : $Id: XmlArrow.hs,v 1.34 2006<EM
->11</EM
->02 16:43:39 hxml Exp $
-</P
-><P
 >Basic arrows for processing XML documents
 </P
 ><P
@@ -2728,7 +2723,7 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT
+>convenient arrow for element construction with strings instead of qualified names as element names, see also <TT
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
 >mkElement</A
 ></TT
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html"
 >Source code</A
@@ -1076,21 +1076,31 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AtraceValue"
+>traceValue</A
+> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>IOStateArrow</A
+> s b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AtraceString"
 >traceString</A
 > ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 >) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
+> s b b</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -3431,7 +3441,7 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->issue a string message as trace 
+>issue a string message as trace
 </TD
 ></TR
 ><TR
@@ -3443,23 +3453,56 @@
 ><TABLE CLASS="declbar"
 ><TR
 ><TD CLASS="declname"
+><A NAME="v%3AtraceValue"
+></A
+><B
+>traceValue</B
+> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>IOStateArrow</A
+> s b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>trace the current value transfered in a sequence of arrows.
+</P
+><P
+>The value is formated by a string conversion function. This is a substitute for
+ the old and less general traceString function
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceString"
 ></A
 ><B
 >traceString</B
 > ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 >) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
+> s b b</TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceString"
 >Source</A
@@ -3470,7 +3513,11 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->issue the string input of an arrow
+>an old alias for <TT
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceValue"
+>traceValue</A
+></TT
+>
 </TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Arrow.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-Interface.html b/doc/hdoc/Text-XML-HXT-DOM-Interface.html
--- a/doc/hdoc/Text-XML-HXT-DOM-Interface.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-Interface.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-Interface.html"
 >Source code</A
@@ -114,16 +114,6 @@
 ><TD CLASS="decl"
 >module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"
 >Text.XML.HXT.DOM.TypeDefs</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
->Text.XML.HXT.DOM.NamespacePredicates</A
 ></TD
 ></TR
 ><TR
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html b/doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html
--- a/doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-MimeTypeDefaults.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html b/doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html
--- a/doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
+++ /dev/null
@@ -1,436 +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.DOM.NamespacePredicates</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
-><TD CLASS="topbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html"
->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.NamespacePredicates</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->basic Namespace and QName predicates and functions
-</P
-><P
->$Id: NamespacePredicates.hs,v 1.3 2006<EM
->11</EM
->12 14:53:00 hxml Exp $
-</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%3AsetNamespace"
->setNamespace</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&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
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlnsQN"
->xmlnsQN</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%3AisNCName"
->isNCName</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedQualifiedName"
->isWellformedQualifiedName</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedQName"
->isWellformedQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedNSDecl"
->isWellformedNSDecl</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDeclaredNamespace"
->isDeclaredNamespace</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AsetNamespace"
-></A
-><B
->setNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&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
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#setNamespace"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Compute the name prefix and the namespace uri for a qualified name.
-</P
-><P
->This function does not test whether the name is a wellformed qualified name.
- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,
- see <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"
->isWellformedQName</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"
->isWellformedQualifiedName</A
-></TT
-> for error checking.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AxmlnsQN"
-></A
-><B
->xmlnsQN</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#xmlnsQN"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisNCName"
-></A
-><B
->isNCName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#isNCName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for wellformed NCName, rule [4] XML Namespaces
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisWellformedQualifiedName"
-></A
-><B
->isWellformedQualifiedName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#isWellformedQualifiedName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for wellformed QName, rule [6] XML Namespaces
- predicate is used in filter valdateNamespaces.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisWellformedQName"
-></A
-><B
->isWellformedQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#isWellformedQName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for wellformed QName values.
- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.
- predicate is used in filter valdateNamespaces.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisWellformedNSDecl"
-></A
-><B
->isWellformedNSDecl</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#isWellformedNSDecl"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for a wellformed namespace declaration
- all namespace prefixes starting with &quot;xml&quot; are reserved for XML related definitions.
- predicate is used in filter valdateNamespaces.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisDeclaredNamespace"
-></A
-><B
->isDeclaredNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html#isDeclaredNamespace"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->predicate is used in filter valdateNamespaces.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 2.3.0</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html
--- a/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html
@@ -19,1142 +19,2220 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
-><TD CLASS="topbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html"
->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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AlocalPart"
->localPart</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamespaceUri"
->namespaceUri</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></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; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></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; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></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; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AbuildUniversalName"
->buildUniversalName</A
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQName"
->mkQName</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivUri"
->equivUri</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQNameBy"
->equalQNameBy</A
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNsUri"
->normalizeNsUri</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->data</SPAN
->  <A NAME="t%3AQName"
-></A
-><B
->QName</B
->  </TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#QName"
->Source</A
-></TD
-></TR
-></TABLE
-></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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></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
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></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="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"
->Eq</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"
->Ord</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"
->Read</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"
->Show</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"
->Typeable</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"
->NFData</A
-> <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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AqualifiedName"
-></A
-><B
->qualifiedName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#qualifiedName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AuniversalName"
-></A
-><B
->universalName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#universalName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AuniversalUri"
-></A
-><B
->universalUri</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#universalUri"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AbuildUniversalName"
-></A
-><B
->buildUniversalName</B
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#buildUniversalName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkQName"
-></A
-><B
->mkQName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkQName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkName"
-></A
-><B
->mkName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkPrefixLocalPart"
-></A
-><B
->mkPrefixLocalPart</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkPrefixLocalPart"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkNsName"
-></A
-><B
->mkNsName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkNsName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkSNsName"
-></A
-><B
->mkSNsName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkSNsName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AnullQName"
-></A
-><B
->nullQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#nullQName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Empty QName
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equalQName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equivQName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AequivUri"
-></A
-><B
->equivUri</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equivUri"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AequalQNameBy"
-></A
-><B
->equalQNameBy</B
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equalQNameBy"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AnormalizeNsUri"
-></A
-><B
->normalizeNsUri</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#normalizeNsUri"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
-</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
+><TD CLASS="topbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html"
+>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
+> </TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AXName"
+>XName</A
+> = Atom</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3ANsEnv"
+>NsEnv</A
+> = <A HREF="Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkQName"
+>mkQName</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&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%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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivUri"
+>equivUri</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQNameBy"
+>equalQNameBy</A
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnamePrefix"
+>namePrefix</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AlocalPart"
+>localPart</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnamespaceUri"
+>namespaceUri</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnewXName"
+>newXName</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnullXName"
+>nullXName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisNullXName"
+>isNullXName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkQName%27"
+>mkQName'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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%3AnamePrefix%27"
+>namePrefix'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AlocalPart%27"
+>localPart'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnamespaceUri%27"
+>namespaceUri'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetNamePrefix%27"
+>setNamePrefix'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetLocalPart%27"
+>setLocalPart'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetNamespaceUri%27"
+>setNamespaceUri'</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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
+></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; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></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; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></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; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AbuildUniversalName"
+>buildUniversalName</A
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetNamespace"
+>setNamespace</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>NsEnv</A
+> -&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
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisNCName"
+>isNCName</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisWellformedQualifiedName"
+>isWellformedQualifiedName</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisWellformedQName"
+>isWellformedQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisWellformedNSDecl"
+>isWellformedNSDecl</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisWellformedNameSpaceName"
+>isWellformedNameSpaceName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisNameSpaceName"
+>isNameSpaceName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDeclaredNamespace"
+>isDeclaredNamespace</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlNamespaceXName"
+>xmlNamespaceXName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlXName"
+>xmlXName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlnsNamespaceXName"
+>xmlnsNamespaceXName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlnsXName"
+>xmlnsXName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlnsQN"
+>xmlnsQN</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%3AtoNsEnv"
+>toNsEnv</A
+> :: <A HREF="Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>NsEnv</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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+>  <A NAME="t%3AQName"
+></A
+><B
+>QName</B
+>  </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#QName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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"
+><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="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"
+>Eq</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"
+>Ord</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"
+>Read</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"
+>Show</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"
+>Typeable</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"
+>NFData</A
+> <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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AXName"
+></A
+><B
+>XName</B
+> = Atom</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#XName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>XML names are represented by Strings, but these strings do not mix up with normal strings.
+ Names are always reduced to normal form, and they are stored internally in a name cache
+ for sharing equal names by the same data structure
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ANsEnv"
+></A
+><B
+>NsEnv</B
+> = <A HREF="Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#NsEnv"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Type for the namespace association list, used when propagating namespaces by
+ modifying the <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TT
+> values in a tree
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkQName"
+></A
+><B
+>mkQName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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
+>.
+ This function can be used to build not wellformed prefix:localpart names.
+ The XPath module uses wildcard names like <TT
+>xxx:*</TT
+>. These must be build with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"
+>mkQName</A
+></TT
+>
+ and not with mkName.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkName"
+></A
+><B
+>mkName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a simple, namespace unaware name.
+ If the name is in <TT
+>prefix:localpart</TT
+> form and the prefix is not empty
+ the name is split internally into
+ a prefix and a local part.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkNsName"
+></A
+><B
+>mkNsName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkNsName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkSNsName"
+></A
+><B
+>mkSNsName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkSNsName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>old name for <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkPrefixLocalPart"
+></A
+><B
+>mkPrefixLocalPart</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkPrefixLocalPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></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%3AmkQName"
+>mkQName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equivQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AequivUri"
+></A
+><B
+>equivUri</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equivUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AequalQNameBy"
+></A
+><B
+>equalQNameBy</B
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equalQNameBy"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>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
+ <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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnamePrefix"
+></A
+><B
+>namePrefix</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namePrefix"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AlocalPart"
+></A
+><B
+>localPart</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#localPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnamespaceUri"
+></A
+><B
+>namespaceUri</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namespaceUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnewXName"
+></A
+><B
+>newXName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#newXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnullXName"
+></A
+><B
+>nullXName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#nullXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisNullXName"
+></A
+><B
+>isNullXName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isNullXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkQName%27"
+></A
+><B
+>mkQName'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkQName%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnamePrefix%27"
+></A
+><B
+>namePrefix'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namePrefix%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>access name prefix
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AlocalPart%27"
+></A
+><B
+>localPart'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#localPart%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>access local part
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnamespaceUri%27"
+></A
+><B
+>namespaceUri'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namespaceUri%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>access namespace uri
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetNamePrefix%27"
+></A
+><B
+>setNamePrefix'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setNamePrefix%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>set name prefix
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetLocalPart%27"
+></A
+><B
+>setLocalPart'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setLocalPart%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>set local part
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetNamespaceUri%27"
+></A
+><B
+>setNamespaceUri'</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+> -&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
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setNamespaceUri%27"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>set name prefix
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AqualifiedName"
+></A
+><B
+>qualifiedName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#qualifiedName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AuniversalName"
+></A
+><B
+>universalName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#universalName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AuniversalUri"
+></A
+><B
+>universalUri</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#universalUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AbuildUniversalName"
+></A
+><B
+>buildUniversalName</B
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#buildUniversalName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnormalizeNsUri"
+></A
+><B
+>normalizeNsUri</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#normalizeNsUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetNamespace"
+></A
+><B
+>setNamespace</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>NsEnv</A
+> -&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
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setNamespace"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Compute the name prefix and the namespace uri for a qualified name.
+</P
+><P
+>This function does not test whether the name is a wellformed qualified name.
+ see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,
+ see <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName"
+>isWellformedQName</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"
+>isWellformedQualifiedName</A
+></TT
+> for error checking.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisNCName"
+></A
+><B
+>isNCName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isNCName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for wellformed NCName, rule [4] XML Namespaces
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWellformedQualifiedName"
+></A
+><B
+>isWellformedQualifiedName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedQualifiedName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for wellformed QName, rule [6] XML Namespaces
+ predicate is used in filter valdateNamespaces.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWellformedQName"
+></A
+><B
+>isWellformedQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for wellformed QName values.
+ A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.
+ predicate is used in filter valdateNamespaces.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWellformedNSDecl"
+></A
+><B
+>isWellformedNSDecl</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedNSDecl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether an attribute name is a namesapce declaration name.
+ If this is not the case True is the result, else
+ the name must be a well formed namespace name:
+ All namespace prefixes starting with &quot;xml&quot; are reserved for XML related definitions.
+ predicate is used in filter valdateNamespaces.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWellformedNameSpaceName"
+></A
+><B
+>isWellformedNameSpaceName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedNameSpaceName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for a namespace name to be well formed
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisNameSpaceName"
+></A
+><B
+>isNameSpaceName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isNameSpaceName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a name is a namespace declaration attribute name
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDeclaredNamespace"
+></A
+><B
+>isDeclaredNamespace</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isDeclaredNamespace"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>predicate is used in filter valdateNamespaces.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxmlNamespaceXName"
+></A
+><B
+>xmlNamespaceXName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlNamespaceXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxmlXName"
+></A
+><B
+>xmlXName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxmlnsNamespaceXName"
+></A
+><B
+>xmlnsNamespaceXName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlnsNamespaceXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxmlnsXName"
+></A
+><B
+>xmlnsXName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>XName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlnsXName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxmlnsQN"
+></A
+><B
+>xmlnsQN</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlnsQN"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AtoNsEnv"
+></A
+><B
+>toNsEnv</B
+> :: <A HREF="Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>NsEnv</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#toNsEnv"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html b/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html
--- a/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-ShowXml.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html"
 >Source code</A
@@ -356,24 +356,6 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANsEnv"
->NsEnv</A
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 ><A HREF="#v%3Ac_ok"
 >c_ok</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
@@ -1125,46 +1107,6 @@
 >used for storing option lists and features of DTD parts
 </P
 ></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANsEnv"
-></A
-><B
->NsEnv</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#NsEnv"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Type for the namespace association list, used when propagating namespaces by
- modifying the <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TT
-> values in a tree
-</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-Unicode.html"
 >Source code</A
@@ -117,13 +117,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
 >Unicode and UTF-8 Conversion Functions
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-Util.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html b/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlNode.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
+++ /dev/null
@@ -1,710 +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.DOM.XmlTreeTypes</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
-><TD CLASS="topbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html"
->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.XmlTreeTypes</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->exports the core data types
- and some additional types and functions
- for compatibility with none arrow modules
-</P
-><P
->Version : $Id: XmlTreeTypes.hs,v 1.6 2006<EM
->05</EM
->09 15:30:43 hxml Exp $
-</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"
->module <A HREF="Data-Tree-NTree-Filter.html"
->Data.Tree.NTree.Filter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"
->Text.XML.HXT.DOM.TypeDefs</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNode"
->mkNode</A
-> ::  node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AformatNTree"
->formatNTree</A
-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfoldNTree"
->foldNTree</A
-> ::  (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmapNTree"
->mapNTree</A
-> ::  (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnTreeToList"
->nTreeToList</A
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdepthNTree"
->depthNTree</A
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcardNTree"
->cardNTree</A
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXmlFilter"
->XmlFilter</A
-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXmlSFilter"
->XmlSFilter</A
-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
->TSFilter</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ATagName"
->TagName</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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAttrName"
->AttrName</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%3AtName"
->tName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaName"
->aName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</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"
->module <A HREF="Data-Tree-NTree-Filter.html"
->Data.Tree.NTree.Filter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"
->Text.XML.HXT.DOM.TypeDefs</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkNode"
-></A
-><B
->mkNode</B
-> ::  node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#mkNode"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AformatNTree"
-></A
-><B
->formatNTree</B
-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#formatNTree"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AfoldNTree"
-></A
-><B
->foldNTree</B
-> ::  (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; b</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#foldNTree"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmapNTree"
-></A
-><B
->mapNTree</B
-> ::  (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> b</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#mapNTree"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AnTreeToList"
-></A
-><B
->nTreeToList</B
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; [a]</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#nTreeToList"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AdepthNTree"
-></A
-><B
->depthNTree</B
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#depthNTree"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AcardNTree"
-></A
-><B
->cardNTree</B
-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#cardNTree"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlFilter"
-></A
-><B
->XmlFilter</B
-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#XmlFilter"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->A functions that takes a node and returns a list of nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlSFilter"
-></A
-><B
->XmlSFilter</B
-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
->TSFilter</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#XmlSFilter"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->A function that takes a list of nodes and returns a list of nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ATagName"
-></A
-><B
->TagName</B
-> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#TagName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Tag name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAttrName"
-></A
-><B
->AttrName</B
-> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#AttrName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AtName"
-></A
-><B
->tName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#tName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
->qualifiedName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AaName"
-></A
-><B
->aName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#aName"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
->qualifiedName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 2.3.0</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-DTDValidation.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-DocTransformation.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-DocValidation.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-IdValidation.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html b/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-RE.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html b/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html b/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html
--- a/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-IO-GetFILE.html"
 >Source code</A
@@ -44,15 +44,46 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.IO.GetFILE</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 GET method for file protocol
+</TD
+></TR
+><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
@@ -77,7 +108,9 @@
 ></A
 ><B
 >getStdinCont</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
 >IO</A
 > (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
 >Either</A
@@ -107,7 +140,9 @@
 ></A
 ><B
 >getCont</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
 >IO</A
diff --git a/doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html b/doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html
--- a/doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html
+++ b/doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-IO-GetHTTPLibCurl.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html b/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html
--- a/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-TagSoup.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XhtmlEntities.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlEntities.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html"
 >Source code</A
@@ -415,6 +415,50 @@
 >String</A
 ></TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3C%26%26%3E"
+>(&lt;&amp;&amp;&gt;)</A
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3C%7C%7C%3E"
+>(&lt;||&gt;)</A
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -1023,6 +1067,74 @@
 ></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#matchWithRE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%3C%26%26%3E"
+></A
+><B
+>(&lt;&amp;&amp;&gt;)</B
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#%3C%26%26%3E"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%3C%7C%7C%3E"
+></A
+><B
+>(&lt;||&gt;)</B
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#%3C%7C%7C%3E"
 >Source</A
 ></TD
 ></TR
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html"
 >Source code</A
@@ -405,7 +405,8 @@
 </P
 ><PRE
 > splitRE &quot;a*b&quot; &quot;abc&quot; = Just (&quot;ab&quot;,&quot;c&quot;)
- splitRE &quot;a*&quot;  &quot;bc&quot;  = Just (&quot;&quot;, &quot;bc)
+ splitRE &quot;a*&quot;  &quot;bc&quot;  = Just (&quot;&quot;, &quot;bc&quot;)
+ splitRE &quot;a+&quot;  &quot;bc&quot;  = Nothing
  splitRE &quot;[&quot;   &quot;abc&quot; = Nothing
 </PRE
 ></TD
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-RelaxNG.html"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Version.html b/doc/hdoc/Text-XML-HXT-Version.html
--- a/doc/hdoc/Text-XML-HXT-Version.html
+++ b/doc/hdoc/Text-XML-HXT-Version.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Version.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-NavTree.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html"
 >Source code</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathEval.html"
 >Source code</A
@@ -130,8 +130,8 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXPathWithNsEnv"
 >getXPathWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -164,8 +164,8 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXPathSubTreesWithNsEnv"
 >getXPathSubTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -198,8 +198,8 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXPathNodeSetWithNsEnv"
 >getXPathNodeSetWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -293,8 +293,8 @@
 ></A
 ><B
 >getXPathWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -386,8 +386,8 @@
 ></A
 ><B
 >getXPathSubTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
@@ -458,8 +458,8 @@
 ></A
 ><B
 >getXPathNodeSetWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathFct.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathParser.html"
 >Source code</A
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: XPathParser.hs,v 1.6 2006<EM
->10</EM
->12 11:51:29 hxml Exp $
-</P
-><P
 >the XPath Parser
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath-XPathToString.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XPath.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XSLT-Application.html"
 >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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XSLT-Common.html"
 >Source code</A
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: Common.hs,v 1.5 2007<EM
->05</EM
->02 06:41:05 hxml Exp $
-</P
-><P
 >Common imports and functions for HXSLT
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XSLT-Compilation.html"
 >Source code</A
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: Compilation.hs,v 1.7 2007<EM
->05</EM
->02 06:41:05 hxml Exp $
-</P
-><P
 >The compilation functions for XSLT stylesheets
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XSLT-Names.html"
 >Source code</A
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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html"
 >Source code</A
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,16338 +4,15814 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->hxt-8.2.0: A collection of tools for processing XML with Haskell. (Index)</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</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 COLSPAN="2" STYLE="padding-top:5px;"
-><FORM onsubmit="full_search(); return false;" ACTION=""
->Search: <INPUT ID="searchbox" onkeyup="quick_search()"
-> <INPUT VALUE="Search" TYPE="submit"
-> <SPAN ID="searchmsg"
-> </SPAN
-></FORM
-></TD
-></TR
-><TR
-><TD
-><TABLE ID="indexlist" CELLPADDING="0" CELLSPACING="5"
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->$$</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3A%24%24"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->$$&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24%3C"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->$&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->$&lt;$</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->$&lt;&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->$&lt;&lt;&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->$&lt;&lt;&lt;&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&amp;&amp;&amp;</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->***</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->+++</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->+++&gt;&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->+=</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->..&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->.&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->.&gt;&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->/&gt;</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->:-&gt;</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&lt;+&gt;</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->&lt;/</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&lt;&lt;&lt;</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&lt;&lt;^</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&gt;.</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&gt;&gt;.</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&gt;&gt;&gt;</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->&gt;&gt;^</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Abs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAbs"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->accessState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"
->Control.Arrow.ArrowState</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addAlias</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaddAlias"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addAtt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AaddAtt"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->addAttr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AaddAttr"
->Text.XML.HXT.DOM.XmlNode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addCont</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AaddCont"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addDoctypeDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddDoctypeDecl"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addEntries</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3AaddEntries"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addEntry</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3AaddEntry"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addHeadlineToXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddHeadlineToXmlDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addXHtmlDoctypeFrameset</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeFrameset"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addXHtmlDoctypeStrict</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeStrict"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addXHtmlDoctypeTransitional</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeTransitional"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addXmlPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPi"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->addXmlPiEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPiEncoding"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->aelem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aaelem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->After</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->after</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aafter"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->aliasUriMapping</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaliasUriMapping"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->allBut</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->allBut1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AllowedDatatypes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AllowedParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Alt</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->aName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AaName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Ancestor</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestor"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ancestorAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AncestorOrSelf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestorOrSelf"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ancestorOrSelfAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorOrSelfAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->And</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAnd"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Any</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AnyName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AnyNameExcept</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->app</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->application_xhtml</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->application_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3Aapplication_xml"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->application_xml_dtd</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->application_xml_external_parsed_entity</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->applyA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->applyStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"
->Text.XML.HXT.XSLT.Application</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->applyStylesheetWParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"
->Text.XML.HXT.XSLT.Application</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->appPickle</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappPickle"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AappPickle"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->appUnPickle</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappUnPickle"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AappUnPickle"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arr</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arr2</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arr2A</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arr2L</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arr3</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arr4</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arrIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arrIO0</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO0"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arrIO2</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO2"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arrIO3</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO3"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arrIO4</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO4"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->arrL</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Arrow</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowApply</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowChoice</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowIf</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowIOIf</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowList</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowLoop</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->ArrowMonad</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Type/Class)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowNF</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"
->Control.Arrow.ArrowNF</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowPlus</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
->Control.Arrow.ArrowState</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ArrowZero</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->asciiLetter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->assembleStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AassembleStylesheet"
->Text.XML.HXT.XSLT.Compilation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->AssocList</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#t%3AAssocList"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Atom</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Atom.html#t%3AAtom"
->Data.Atom</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attachNsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AattachNsEnv"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ATTLIST</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AATTLIST"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attlistDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AattlistDecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attrDec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AattrDec"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attrEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AttribSet</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->Attribute</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAttribute"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->3 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attributeAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AattributeAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Attributes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attributes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Aattributes"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AttributeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AttrName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attrNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AattrNodes"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->attrValue</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AattrValue"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attrValueT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->attrValueT'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT%27"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->AxisSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_addDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_ancestor</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_ancestor_or_self</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor_or_self"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_attribute</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_canonicalize</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_check_namespaces</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_check_restrictions</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_child</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_collect_errors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_column</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_contentLength</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_default</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_default_baseuri</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_descendant</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_descendant_or_self</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_canonicalize</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_check_namespaces</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_check_restrictions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_collect_errors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_issue_errors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_issue_warnings</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_preserve_comment</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_remove_whitespace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_use_curl</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_validate</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_validate_externalRef</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_do_not_validate_include</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_encoding</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_error</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_error_log</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_following</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_following_sibling</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_help</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_ignore_encoding_errors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_ignore_none_xml_contents</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_indent</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_issue_errors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_issue_warnings</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_kind</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_line</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_mime_types</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_modifier</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_module</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_name</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_namespace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_no_xml_pi</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_numberOfErrors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_options_curl</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_output_changes</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_output_encoding</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_output_file</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_output_html</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_output_xml</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_parent</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_parse_by_mimetype</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_parse_html</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_parse_xml</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_peref</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_preceding</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_preceding_sibling</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_preserve_comment</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_propagate_errors</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_proxy</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_relaxSimplificationChanges</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aa_relaxSimplificationChanges"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_relax_schema</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_remove_whitespace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_self</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_show_haskell</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_show_tree</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_source</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_standalone</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_status</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_tagsoup</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_trace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_type</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_url</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_use_curl</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_validate</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_validate_externalRef</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_validate_include</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_value</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_verbose</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_version</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_xml</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->a_xmlns</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->bar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->buildUniversalName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->canonicalizeAllNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->canonicalizeContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeContents"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->canonicalizeForXPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->cardNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AcardNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->cardTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AcardTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->cat</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->catA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->catM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->cDSect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeAttrl</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeAttrName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeBaseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeChildren</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AchangeChildren"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeCmt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeCmt"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeDTDAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeDTDAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeElemName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeElemName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeNode</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AchangeNode"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changePiName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangePiName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeQName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"
->Control.Arrow.ArrowState</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeSysParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeSysParam"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->changeText</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeText"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->changeUserState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeUserState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CharData</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->charData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->charData'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData%27"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->charRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->charRefT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->charRngs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AcharRngs"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->chars</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Achars"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->charToHexString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->checkAM</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAM"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkAMC</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAMC"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkAttributeValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AcheckAttributeValue"
->Text.XML.HXT.DTDValidation.AttributeValueValidation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkAttrModell</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAttrModell"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkContentModell</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckContentModell"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckErr"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->checkPickler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AcheckPickler"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3AcheckRE"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3AcheckRE"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->checkRngName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AcheckRngName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->Child</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AChild"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->childAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AchildAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ChildNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->childNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Choice</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->choice</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Achoice"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->choiceA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->choiceM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->cleanupNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->clearErrStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AclearErrStatus"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->closesHtmlTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->cmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Acmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->codeBlocks</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-Blocks.html#v%3AcodeBlocks"
->Text.XML.HXT.RelaxNG.Unicode.Blocks</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->collapseAllXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseAllXText"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->collapseXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->collectNamespaceDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->collectPrefixUriPairs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectPrefixUriPairs"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->collectTextnodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcollectTextnodes"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->comma</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->compareURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AcompareURI"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->CompiledStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
->, <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->Text.XML.HXT.XSLT.XsltArrows</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->CompQName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->CompStylesheet</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ComputedQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->computeNTestPriority</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputeNTestPriority"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->computePriority</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputePriority"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->concatExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AconcatExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->concRes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CONDSECT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONDSECT"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ConLen</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ConNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ConPos</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->constA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->constL</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->containing</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->containingM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->contains</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3Acontains"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CONTENT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONTENT"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->content</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->contents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Acontents"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ContentType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->contentWithTextDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->Context</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->contextAttributes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AcontextAttributes"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->contextBaseAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AcontextBaseAttr"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->createDocumentOrder</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrder"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->createDocumentOrderReverse</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrderReverse"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->createNameClass</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreateNameClass"
->Text.XML.HXT.RelaxNG.CreatePattern</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->createPatternFromXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreatePatternFromXmlTree"
->Text.XML.HXT.RelaxNG.CreatePattern</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->createSimpleForm</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AcreateSimpleForm"
->Text.XML.HXT.RelaxNG.Simplification</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CTComplex</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CTEmpty</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CTNone</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->CTSimple</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->c_err</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->c_fatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->c_ok</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->c_warn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Data</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DataExcept</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dataNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AdataNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Datatype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DatatypeAllows</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->datatypeAllows</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeAllows"
->Text.XML.HXT.RelaxNG.DataTypeLibraries</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DatatypeCheck</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DataTypeDescr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"
->Text.XML.HXT.Arrow.Pickle.Schema</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DatatypeEqual</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->datatypeEqual</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeEqual"
->Text.XML.HXT.RelaxNG.DataTypeLibraries</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DatatypeLibraries</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->datatypeLibraries</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeLibraries"
->Text.XML.HXT.RelaxNG.DataTypeLibraries</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DatatypeLibrary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DatatypeName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->decimalStringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3Adecode"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decodeDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AdecodeDocument"
->Text.XML.HXT.Arrow.DocumentInput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decodeEmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AdecodeEmbedErrors"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decodeOne</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AdecodeOne"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decodeUtf8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8"
->Text.XML.HXT.DOM.UTF8Decoding</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decodeUtf8EmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8EmbedErrors"
->Text.XML.HXT.DOM.UTF8Decoding</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->decodeUtf8IgnoreErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8IgnoreErrors"
->Text.XML.HXT.DOM.UTF8Decoding</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DecodingFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DecodingFctEmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->deep</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->deepest</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->defaultMimeTypeTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AdefaultMimeTypeTable"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->defineOrigName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->delEntries</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3AdelEntries"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->delEntry</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3AdelEntry"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->delta</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Adelta"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Adelta"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->depthNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AdepthNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->depthTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AdepthTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Descendant</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendant"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->descendantAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DescendantOrSelf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendantOrSelf"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->descendantOrSelfAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantOrSelfAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Div</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADiv"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DOCTYPE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ADOCTYPE"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->doctypedecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->document</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->document'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument%27"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->documentStatusOk</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AdocumentStatusOk"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->doubles</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->downNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AdownNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dropCont</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AdropCont"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtAllowedTypes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtAllowedTypes"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtAllowsFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtAllowsFct"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DTC</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdChars</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdChars"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdDeclEnd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclEnd"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdDeclStart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclStart"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdDeclTokenizer</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclTokenizer"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->DTDdescr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.DTD</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdDescr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AdtdDescr"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdDescrToXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AdtdDescrToXml"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DTDElem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->DTDescr</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtdToken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdToken"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtd_default</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_default"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtd_kind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_kind"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtd_modifier</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_modifier"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtd_name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_name"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtd_type</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_type"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtd_value</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_value"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtEqualFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtEqualFct"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtLib</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtLib"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtName"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->dtParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtParams"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->eelem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aeelem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ELEMENT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AELEMENT"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->Element</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->element</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->elementDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AelementDecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->elementDeclarations</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelementDeclarations"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->elementDecs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelementDecs"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->elemName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemName"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->elemNames</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemNames"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ElemRef</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->elemRefs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemRefs"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Empty</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->emptyHtmlTags</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AemptyHtmlTags"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->emptyNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AemptyNodeSet"
->Text.XML.HXT.XPath.XPathToNodeSet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->emptySt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AemptySt"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->encName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->encode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3Aencode"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->encodeDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AencodeDocument"
->Text.XML.HXT.Arrow.DocumentOutput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->encodeOne</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AencodeOne"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->encodingDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ENTITY</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AENTITY"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->entityCharT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->entityDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AentityDecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->entityRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->entityRefT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->entityTokensT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->entityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->entityValueT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->Env</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AEnv"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Eq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AEq"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->eq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->equalQName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->equalQNameBy</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->equivQName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->equivUri</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->err</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aerr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ErrLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ErrMessage</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ErrMsg</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Error</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#t%3AError"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgCollect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgCollect"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgDataLibQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataLibQName"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgDataTypeNotAllowed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgDataTypeNotAllowed0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed0"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgDataTypeNotAllowed2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed2"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgEqual</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgEqual"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgIgnore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgIgnore"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgStderr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderr"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->errorMsgStderrAndCollect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderrAndCollect"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->escapeHtmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeHtmlDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->escapeURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->escapeXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeXmlDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->evalExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AevalExpr"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->evalFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AevalFct"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->exLocal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexLocal"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->ExName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AExName"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->expandNSDecls</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexpandNSDecls"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->expandURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->expandURIString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Expr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->expr2XPathTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Aexpr2XPathTree"
->Text.XML.HXT.XPath.XPathToString</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->extensionToMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AextensionToMimeType"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->exUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexUri"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->FctArguments</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->FctExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFctExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->FctName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->feedPreserves</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedPreserves"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->feedSpaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedSpaces"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->feedStrips</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->fetchAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttribute"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->fetchAttributeWDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttributeWDefault"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->filterA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AfilterA"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->filterErrorMsg</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AfilterErrorMsg"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->FilterExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFilterExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->filterTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTree"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->filterTreeCtx</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTreeCtx"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->first</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->firstChild</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AfirstChild"
->Text.XML.HXT.RelaxNG.CreatePattern</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Float</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFloat"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->foldNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AfoldNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->foldTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AfoldTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Following</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowing"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->followingAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->FollowingSibling</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowingSibling"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->followingSiblingAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingSiblingAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AformatNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatNTreeF</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"
->Data.Tree.NTree.TypeDefs</A
->, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatStringList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringList"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatStringListArr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListArr"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatStringListId</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListId"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatStringListPairs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListPairs"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatStringListPatt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListPatt"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatStringListQuot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListQuot"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AformatTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatXmlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"
->Text.XML.HXT.DOM.FormatXmlTree</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->formatXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"
->Text.XML.HXT.DOM.FormatXmlTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->foundErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AfoundErr"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->fromJustErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfromJustErr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->fromLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"
->Control.Arrow.ListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->fromSLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"
->Control.Arrow.StateListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->generalOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AgeneralOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->GenExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGenExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAliases</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAliases"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAllParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParams"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAllParamsString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParamsString"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAtt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AgetAtt"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAttributeSets</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAttributeSets"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getAttrl</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getAttrName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getAttrValue0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue0"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetBaseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getCdata</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCdata"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getCharRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCharRef"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getChildren</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AgetChildren"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->getChildrenNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AgetChildrenNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getChildrenPattern</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetChildrenPattern"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getCmt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCmt"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getCont</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-IO-GetFILE.html#v%3AgetCont"
->Text.XML.HXT.IO.GetFILE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-IO-GetHTTPLibCurl.html#v%3AgetCont"
->Text.XML.HXT.IO.GetHTTPLibCurl</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AgetCont"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getConvFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetConvFct"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDecodingFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFct"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDecodingFctEmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFctEmbedErrors"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDefaultBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetDefaultBaseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDocumentContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDTDAttributes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AgetDTDAttributes"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getDTDAttrl</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDTDAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getDTDPart</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDPart"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getDTDSubset</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AgetDTDSubset"
->Text.XML.HXT.DTDValidation.Validation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getElemAndAttrNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getElemName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetElemName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getElemNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemNodeSet"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetEncoding"
->Text.XML.HXT.Arrow.DocumentInput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getEntityRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetEntityRef"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getErrorLevel</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorLevel"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getErrorMessages</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrorMessages"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getErrorMsg</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorMsg"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AgetErrors"
->Text.XML.HXT.RelaxNG.Simplification</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getErrStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrStatus"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getFragmentFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetFragmentFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getFromNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getKeyTab</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetKeyTab"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getLocalPart</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetLocalPart"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getMatchRules</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetMatchRules"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getNameClassFromPattern</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetNameClassFromPattern"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getNamedRules</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetNamedRules"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getNamePrefix</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamePrefix"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getNamespaceDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getNamespaceUri</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamespaceUri"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getNode</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AgetNode"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getOutputEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AgetOutputEncoding"
->Text.XML.HXT.Arrow.DocumentOutput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getOutputEncodingFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetOutputEncodingFct"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParam"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getParamInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamInt"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getParamString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamString"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getPathFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPathFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getPatternName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetPatternName"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getPiContent</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiContent"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getPiName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getPortFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPortFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getQAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getQAttrValue0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue0"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getQualifiedName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetQualifiedName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getQueryFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetQueryFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRegNameFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetRegNameFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrAttribute"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrCombine</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrCombine"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrDatatypeLibrary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrDatatypeLibrary"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrDescr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrDescr"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrHref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrHref"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrNs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrNs"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRngAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrType"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRuleImports</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleImports"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRuleMode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleMode"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRuleName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleName"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getRulePrio</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRulePrio"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getSchemeFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSchemeFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"
->Control.Arrow.ArrowState</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getStdinCont</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-IO-GetFILE.html#v%3AgetStdinCont"
->Text.XML.HXT.IO.GetFILE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getStrips</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetStrips"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getSysParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSysParam"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getText</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetText"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getTraceLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetTraceLevel"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getUniversalName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getUniversalUri</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalUri"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getURIContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetURIContents"
->Text.XML.HXT.Arrow.DocumentInput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getUriMap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AgetUriMap"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getUserInfoFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserInfoFromURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getUserState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getVariables</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVariables"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getVarName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarName"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getVarTab</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetVarTab"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getXmlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"
->Text.XML.HXT.Arrow.DocumentInput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getXmlEntityContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlEntityContents"
->Text.XML.HXT.Arrow.DocumentInput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->getXPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathNodeSet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSet"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathNodeSet"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getXPathNodeSetWithNsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSetWithNsEnv"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getXPathSubTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->getXPathSubTreesWithNsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTreesWithNsEnv"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTrees</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTreesInDoc</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTreesInDocWithNsEnv</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTreesWithNsEnv</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->getXPathWithNsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathWithNsEnv"
->Text.XML.HXT.XPath.XPathEval</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Greater</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreater"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->GreaterEq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreaterEq"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Group</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->group</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Agroup"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->gt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->guards</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->guardsM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->guardsP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->guessEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AguessEncoding"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AhasAttribute"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasDTDAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasDTDAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasDTDAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AhasDTDAttrValue"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasEntry</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3AhasEntry"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->haskellRepOfXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasLocalPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasLocalPart"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasNamePrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamePrefix"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasNamespaceUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamespaceUri"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasNameWith</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNameWith"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasQAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasQAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrAttribute"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrCombine</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrCombine"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrDatatypeLibrary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrDatatypeLibrary"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrHref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrHref"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrNs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrNs"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrType"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasRngName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hasXmlPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhasXmlPi"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hexStringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AhexStringToInt"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hread</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Ahread"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->httpPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AhttpPrefix"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->hxt_version</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Version.html#v%3Ahxt_version"
->Text.XML.HXT.Version</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ifA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iff</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ifM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ifP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->IfThen</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->indentDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->initialState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->initialSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialSysState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->inputOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AinputOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->insertChildrenAfter</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->insertChildrenAt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->insertTreeTemplate</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Interleave</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->interleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Ainterleave"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->intToCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->intToCharRefHex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->intToHexString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->IOLA</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->Control.Arrow.IOListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOListArrow.html#v%3AIOLA"
->Control.Arrow.IOListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->IOSArrow</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->IOSLA</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->Control.Arrow.IOStateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOStateListArrow.html#v%3AIOSLA"
->Control.Arrow.IOStateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->IOStateArrow</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isAttlistOfElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisAttlistOfElement"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isAttr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisAttr"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isAttributeListGroupInterleaveOneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeListGroupInterleaveOneOrMore"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isAttributeRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRef"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRefTextListGroupInterleaveOneOrMoreEmpty"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isAttributeRefTextListInterleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRefTextListInterleave"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisAttrType"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isCdata</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCdata"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isCharRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCharRef"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isChoiceGroupInterleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisChoiceGroupInterleave"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isChoiceGroupInterleaveOneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisChoiceGroupInterleaveOneOrMore"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isCmt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCmt"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDeclaredNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDefaultAttrKind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDefaultAttrKind"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDefineOneOrMoreZeroOrMoreOptionalListMixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisDefineOneOrMoreZeroOrMoreOptionalListMixed"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isDTD</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisDTD"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDAttlist</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDAttlist"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDAttlistNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDAttlistNode"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDCondSect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDCondSect"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDContent"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDContentNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDContentNode"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDDoctype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDDoctype"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDDoctypeNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDDoctypeNode"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDElement"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDElementNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDElementNode"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDEntity"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDNameNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDNameNode"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDNotation</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDNotation"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDPEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPEntity"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isDTDPERef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPERef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isElem</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisElem"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isElemNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisElemNode"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isElemType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisElemType"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isEmptyElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEmptyElement"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isEmptyHtmlTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisEmptyHtmlTag"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isEntityRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisEntityRef"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isEnumAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEnumAttrType"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isError</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisError"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isExternalRefInclude</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisExternalRefInclude"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isFixedAttrKind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisFixedAttrKind"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isGroupInterleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisGroupInterleave"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isHtmlMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AisHtmlMimeType"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isIdAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdAttrType"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isIdRefAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdRefAttrType"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isInner</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AisInner"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isInnerHtmlTagOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisInnerHtmlTagOf"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isIOA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isLeaf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AisLeaf"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isMatchExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisMatchExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isMixedContentElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisMixedContentElement"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisName"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNameAnyNameNsName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameAnyNameNsName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNameNsName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameNsName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNameNsNameValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameNsNameValue"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNamespaceDeclAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNCName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisNCName"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNmtoken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNmtoken"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNotationAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisNotationAttrType"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNotInNodeList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AisNotInNodeList"
->Text.XML.HXT.XPath.XPathFct</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNsAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisNsAttr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNumber"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_1"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_10</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_11</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_13</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_14</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_15</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_16</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_2</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_3</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_4</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_5</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_6</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_7</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_8</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso8859_9</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isOfNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isoLatin1</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_10</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_10"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_11</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_11"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_13</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_13"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_14</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_14"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_15</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_15"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_16</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_16"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_2"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_3</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_3"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_4</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_4"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_5</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_5"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_6</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_6"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_7</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_7"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_8"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->iso_8859_9</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_9"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AisParam"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isPi</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisPi"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxAfter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAfter"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxAnyURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisRelaxAnyURI"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAttribute"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxChoice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxChoice"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxData"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxDataExcept</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxDataExcept"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxElement"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxEmpty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxEmpty"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxGroup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxGroup"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxInterleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxInterleave"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxList"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxNotAllowed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxNotAllowed"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxOneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxOneOrMore"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxText"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRelaxValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxValue"
->Text.XML.HXT.RelaxNG.PatternFunctions</A
->, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRequiredAttrKind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisRequiredAttrKind"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAnyName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAnyName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrAttribute"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrCombine</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrCombine"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrDatatypeLibrary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrDatatypeLibrary"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrHref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrHref"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttribute"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrNs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrNs"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrType"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngChoice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngChoice"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngCombine</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngCombine"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngData"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngDefine</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngDefine"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngDiv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngDiv"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngElement"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngEmpty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngEmpty"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngExcept</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngExcept"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngExternalRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngExternalRef"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngGrammar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngGrammar"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngGroup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngGroup"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngInclude</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngInclude"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngInterleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngInterleave"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngList"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngMixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngMixed"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngNotAllowed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngNotAllowed"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngNsName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngNsName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngOneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngOneOrMore"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngOptional</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngOptional"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngParam"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngParentRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngParentRef"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngRef"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngRelaxError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngRelaxError"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngStart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngStart"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngText"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngType"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngValue"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isRngZeroOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngZeroOrMore"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isRoot</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisRoot"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScAttr"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScCharData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScCharData"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScElem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScElem"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScElemRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScElemRef"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScEnum</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScEnum"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScFixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScFixed"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScList"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScOpt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScOpt"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScSARE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScSARE"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isScXsd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScXsd"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->issueErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueErr"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->issueFatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueFatal"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->issueWarn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueWarn"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->isText</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisText"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isTrueValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AisTrueValue"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeC</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeC"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeCc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCc"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeCf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCf"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeCo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCo"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeCs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCs"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeL</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeL"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeLl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLl"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeLm</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLm"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeLo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLo"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeLt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLt"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeLu</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLu"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeM</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeM"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeMc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMc"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeMe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMe"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeMn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMn"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeN"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeNd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNd"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeNl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNl"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeNo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNo"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeP"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePc"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePd"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePe"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePf"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePi"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePo"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodePs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePs"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeS"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeSc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSc"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeSk</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSk"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeSm</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSm"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeSo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSo"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeZ</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZ"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeZl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZl"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeZp</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZp"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnicodeZs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZs"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isUnparsedEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisUnparsedEntity"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isWellformedNSDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isWellformedQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isWellformedQualifiedName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisWhiteSpace"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isWhitespaceNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisWhitespaceNode"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXml11SpaceChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlBaseChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlBaseChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlCombiningChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlCombiningChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlControlOrPermanentlyUndefined</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlControlOrPermanentlyUndefined"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlDigit</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlDigit"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlExtender</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlExtender"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlIdeographicChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlIdeographicChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlLatin1Char</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLatin1Char"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlLetter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AisXmlMimeType"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlNameChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlNameStartChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameStartChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlNCNameChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlNCNameStartChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameStartChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisXmlPi"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlPubidChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlPubidChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isXmlSpaceChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->isZero</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AisZero"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->KeyTab</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->keyword</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->keywords</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->Kleisli</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Type/Class)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_any</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_cdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_cdata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_default</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_empty</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_entities</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_entity</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_enumeration</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_fixed</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_id</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_idref</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_idrefs</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_ignore</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_implied</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_include</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_ndata</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_nmtoken</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_nmtokens</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_notation</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_pcdata</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_peref</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_public</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_required</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->k_system</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->LA</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->Control.Arrow.ListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#v%3ALA"
->Control.Arrow.ListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lastChild</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AlastChild"
->Text.XML.HXT.RelaxNG.CreatePattern</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->latin1ToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Alatin1ToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->left</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->leftApp</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->leftNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AleftNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Less</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALess"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->LessEq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALessEq"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->liftMf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->liftSt</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOStateListArrow.html#v%3AliftSt"
->Control.Arrow.IOStateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->List</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->listA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Literal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->LiteralExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALiteralExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->LiteralQName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->LocalName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->localPart</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->LocationPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->LocPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALocPath"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lookup1</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3Alookup1"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lookupAlias</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupAlias"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lookupDef</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-AssocList.html#v%3AlookupDef"
->Data.AssocList</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lookupPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AlookupPrefix"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lookupStrip</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lookupStrip1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip1"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->loop</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->lt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mapNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmapNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mapTreeCtx</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmapTreeCtx"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->markupdecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->match</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Amatch"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->matches</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Amatches"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Amatches"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->MatchExpr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->matchRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AmatchRE"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->matchRegexA</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchRegexA"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->MatchRule</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->matchWithRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmatchWithRE"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->matchXmlRegex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchXmlRegex"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->MatRule</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->maybePlus</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AmaybePlus"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->maybeStar</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AmaybeStar"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mergeA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mergeAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmergeAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mergeNotAllowed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AmergeNotAllowed"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mimeTypeDefaults</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypeDefaults.html#v%3AmimeTypeDefaults"
->Text.XML.HXT.DOM.MimeTypeDefaults</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->MimeTypeTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Minus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMinus"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->misc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->mkAbsURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkAlt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkAlt"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkAlt"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkAttr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttr"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttrNode"
->Text.XML.HXT.DOM.XmlNode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkBoolExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkBoolExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkCdata</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCdata"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkCharRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCharRef"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkCmt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCmt"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkCompl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkCompl"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkDif</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDif"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkDot</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDot"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkDot"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkDTDDoctype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDDoctype"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkDTDElem</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDElem"
->Text.XML.HXT.DOM.XmlNode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkDTDElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElement"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkDTDEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDEntity"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkDTDNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDNode"
->Text.XML.HXT.DOM.XmlNode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkDTDPEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDPEntity"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkelem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkElement</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElement"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkElementNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElementNode"
->Text.XML.HXT.DOM.XmlNode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkEntityRef</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkEntityRef"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkError</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkError"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkExName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkExName"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkLeaf</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AmkLeaf"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AmkLeaf"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkLiteralExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkLiteralExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmkNode"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkNsName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkOpt</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkOpt"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkOpt"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkPi</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkPi"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkPrefixLocalPart</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkPrim</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrim"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkPrimA</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrimA"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkqelem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkqelem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkRep</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRep"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRep"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkRng</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRng"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRng"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngChoice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngChoice"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngDefine</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngDefine"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngElement"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngEmpty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngEmpty"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngGrammar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngGrammar"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngGroup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngGroup"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngInterleave</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngInterleave"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngNotAllowed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngNotAllowed"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngOneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngOneOrMore"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngRef"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngRelaxError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngRelaxError"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngStart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngStart"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRngText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngText"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkRoot"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkSeq</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSeq"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkSeq"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkSNsName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkStar</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkStar"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkStar"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkStringExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkStringExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkSym</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSym"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkSym1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSym1"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkSymRng</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSymRng"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkText</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkText"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkTree</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AmkTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AmkTree"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkTrueExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkTrueExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkUnit</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkUnit"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkUnit"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->MkVar</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkXsltAttribName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltAttribName"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mkXsltName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltName"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->mkZero</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkZero"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkZero"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Mod</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMod"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->modifyChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->modifyNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->modifyNode0</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->msgToErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AmsgToErr"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Mult</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMult"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->multi</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->mysqlDatatypeLib</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlDatatypeLib"
->Text.XML.HXT.RelaxNG.DataTypeLibMysql</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->mysqlNS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlNS"
->Text.XML.HXT.RelaxNG.DataTypeLibMysql</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NAME</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANAME"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->Name</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->3 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NameClass</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NameClassChoice</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nameClassToString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AnameClassToString"
->Text.XML.HXT.RelaxNG.PatternToString</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NamedRule</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nameOfAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfAttr"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nameOfElem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfElem"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NamePair</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NamePrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->namePrefix</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->names</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Namespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANamespace"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->namespaceUri</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nameT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NameTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANameTest"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NamRule</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NaN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NavTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#t%3ANavTree"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NavXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NavXmlTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NCError</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ncName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->neg</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Neg0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANeg0"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NegInf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANegInf"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NEq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANEq"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->newAtom</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Atom.html#v%3AnewAtom"
->Data.Atom</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NewName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nextState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"
->Control.Arrow.ArrowState</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nmtoken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nmtokens</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nmtokenT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nodesTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AnodesTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NodeTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->noDoubles</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->none</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->noneM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->noOfChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AnoOfChildren"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeAttributeValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AnormalizeAttributeValue"
->Text.XML.HXT.DTDValidation.AttributeValueValidation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeBlanks</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeBlanks"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeForRelaxValidation</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AnormalizeForRelaxValidation"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeNL</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AnormalizeNL"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeNsUri</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AnormalizeURI"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->normalizeWhitespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NotAllowed</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->notAllowed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->notAllowed1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed1"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->notAllowed2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed2"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->notAllowedN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowedN"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NOTATION</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANOTATION"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->notationDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AnotationDecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->notContaining</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NSAliasing</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NsName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NsNameExcept</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ANT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nt2XPathTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Ant2XPathTree"
->Text.XML.HXT.XPath.XPathToString</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->NTree</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->Data.Tree.NTree.TypeDefs</A
->, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"
->Data.Tree.NTree.TypeDefs</A
->, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ntree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3Antree"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->Data.Tree.NTree.TypeDefs</A
->, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nTreeToList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AnTreeToList"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->nullable</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Anullable"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Anullable"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Anullable"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->nullQName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->NumberExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANumberExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->numberLinesInXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->numberValid</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AnumberValid"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->n_comment</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->n_node</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->n_processing_instruction</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XPath.XPathKeywords</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->n_text</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_text"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->o</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->o'</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3Ao%27"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->OldName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->OneOrMore</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->oneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AoneOrMore"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Op</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->optionIsSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoptionIsSet"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Or</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AOr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->orElse</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->outputOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoutputOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ParamList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ParamName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Parent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AParent"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parentAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AparentAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseContentType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html#v%3AparseContentType"
->Text.XML.HXT.Parser.ProtocolHandlerUtil</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseExName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AparseExName"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseHtmlContent</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlContent"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseHtmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlDoc"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseHtmlDocument</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseHtmlDocument"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseHtmlTagSoup</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-TagSoup.html#v%3AparseHtmlTagSoup"
->Text.XML.HXT.Parser.TagSoup</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlTagSoup"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseHtmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseMimeTypeTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AparseMimeTypeTable"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseNMToken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseNTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AparseNTest"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseNumber"
->Text.XML.HXT.XPath.XPathParser</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseRegex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html#v%3AparseRegex"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlAttrValue</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlAttrValue"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlContent</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlContent"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDoc"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlDocEncodingSpec</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDocEncodingSpec"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlDocument</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseXmlDocument"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlDTDdecl</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdecl"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlDTDdeclPart</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdeclPart"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdeclPart"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlDTDEntityValue</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDEntityValue"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDEntityValue"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlDTDPart</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDPart"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseXmlEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlEntityEncodingSpec</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlEntityEncodingSpec"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->parseXmlGeneralEntityValue</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlGeneralEntityValue"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseXmlPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseXmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->parseXPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseXPath"
->Text.XML.HXT.XPath.XPathParser</A
->, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->partitionA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->partitionEither</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3ApartitionEither"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Path</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->PathExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APathExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Pattern</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->patternToFormatedString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToFormatedString"
->Text.XML.HXT.RelaxNG.PatternToString</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->patternToStringTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToStringTree"
->Text.XML.HXT.RelaxNG.PatternToString</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->PENTITY</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APENTITY"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->percent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3Apercent"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->PEREF</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APEREF"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->peReference</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3ApeReference"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->peReferenceT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->perform</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->performAction</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->PI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3API"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->pI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->pickleDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3ApickleDoc"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Plus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APlus"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Pos0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APos0"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->PosInf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APosInf"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Preceding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APreceding"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->precedingAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->PrecedingSibling</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APrecedingSibling"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->precedingSiblingAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingSiblingAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->pred2XPathTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Apred2XPathTree"
->Text.XML.HXT.XPath.XPathToString</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Prefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->preorderNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ApreorderNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->prepareXSLTDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"
->Text.XML.HXT.XSLT.Compilation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->printRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3AprintRE"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3AprintRE"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->processBottomUp</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processBottomUpIfNot</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processBottomUpM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processBottomUpWhenNot</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->processChildren</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processChildrenM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html#v%3AprocessDTD"
->Text.XML.HXT.Arrow.DTDProcessing</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processFromNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processGeneralEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html#v%3AprocessGeneralEntities"
->Text.XML.HXT.Arrow.GeneralEntitySubstitution</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->processTopDown</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processTopDownM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->processTopDownUntil</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processTopDownWithAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessTopDownWithAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processWithNsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processWithNsEnvWithoutAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnvWithoutAttrl"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processXPathTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->processXPathTreesWithNsEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->prolog</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->propagateAndValidateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3ApropagateAndValidateNamespaces"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->propagateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->PU</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Xml, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3APU"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->pubidLiteral</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->putXmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlDocument"
->Text.XML.HXT.Arrow.DocumentOutput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->putXmlSource</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlSource"
->Text.XML.HXT.Arrow.DocumentOutput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->putXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlTree"
->Text.XML.HXT.Arrow.DocumentOutput</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->qattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->QN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AQN"
->Text.XML.HXT.DOM.QualifiedName</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->QName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->qName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->qualifiedName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->quoted</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readForRelax</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AreadForRelax"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readFromDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromDocument"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readFromString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readMimeTypeTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AreadMimeTypeTable"
->Text.XML.HXT.DOM.MimeTypes</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->readWDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AreadWDefault"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->reference</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->referenceT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RefList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ARefList"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Regex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Rel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ARel"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->relaxNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3ArelaxNamespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->relaxOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3ArelaxOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->relaxSchemaArrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaArrow"
->Text.XML.HXT.RelaxNG.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaArrow"
->Text.XML.HXT.RelaxNG.SchemaGrammar</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->relaxSchemaFile</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ArelaxSchemaFile"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->relaxSchemaGrammarFile</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ArelaxSchemaGrammarFile"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->relaxSchemaTree</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaTree"
->Text.XML.HXT.RelaxNG.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaTree"
->Text.XML.HXT.RelaxNG.SchemaGrammar</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->remAttrDec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AremAttrDec"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->remDups</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AremDups"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeAllComment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllComment"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeAllWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeComment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveComment"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeDocWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->removeDoublicateDefs</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AremoveDoublicateDefs"
->Text.XML.HXT.DTDValidation.DTDValidation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AremoveDoublicateDefs"
->Text.XML.HXT.DTDValidation.Validation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->removeEncodingSpec</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AremoveEncodingSpec"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AremoveOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeQAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveQAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->removeWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Rep</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->replaceChildren</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->replaceNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->returnA</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->revPreorderNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ArevPreorderNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_ALT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ALT"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_alt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_alt"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_alt"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_DOT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_DOT"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_dot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_dot"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_dot"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_OPT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_OPT"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_opt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_opt"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_opt"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_PLUS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_PLUS"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_plus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_plus"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_plus"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_REP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_REP"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_rep</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_rep"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_rep"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_SEQ</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SEQ"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_seq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_seq"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_seq"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_SYM</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SYM"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_sym</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_sym"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_sym"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_UNIT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_UNIT"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_unit</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_unit"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_unit"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->RE_ZERO</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ZERO"
->Text.XML.HXT.DTDValidation.RE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->re_zero</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_zero"
->Text.XML.HXT.DTDValidation.RE</A
->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_zero"
->Text.XML.HXT.DTDValidation.XmlRE</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->right</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rightNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ArightNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rnfA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowNF.html#v%3ArnfA"
->Control.Arrow.ArrowNF</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_length</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_length"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_maxExclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxExclusive"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_maxInclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxInclusive"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_maxLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxLength"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_minExclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minExclusive"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_minInclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minInclusive"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rng_minLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minLength"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->root</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->rpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runInLocalURIContext</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunInLocalURIContext"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runIOLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOListArrow.html#v%3ArunIOLA"
->Control.Arrow.IOListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runIOSLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"
->Control.Arrow.IOStateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runKleisli</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"
->Control.Arrow.ListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runSLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"
->Control.Arrow.StateListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runSt</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunSt"
->Control.Arrow.IOStateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->runX</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->satisfies</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asattr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scAlt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAlt"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scAlts</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAlts"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scanRegexA</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanRegexA"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scanXmlRegex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanXmlRegex"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAttr"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scAttrToXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscAttrToXml"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scCont</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscCont"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scConts</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscConts"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scContToXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscContToXml"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scDT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scDTxsd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDTxsd"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scElem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscElem"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scEmpty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscEmpty"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scEnum</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscEnum"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scFixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscFixed"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Schema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Text.XML.HXT.Arrow.Pickle.Schema</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Schemas</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Text.XML.HXT.Arrow.Pickle.Schema</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchemas"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscList"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scList1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscList1"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scNmtoken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNmtoken"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scNmtokens</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNmtokens"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scNull</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNull"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scOpt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscOpt"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scOption</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscOption"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scRep</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscRep"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscSeq"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scSeqs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscSeqs"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscString"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scString1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscString1"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->scWrap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscWrap"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sc_1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_1"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sc_dt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_dt"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sc_l</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_l"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sc_lb</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_lb"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sc_n</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_n"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sc_ub</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_ub"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sDDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->second</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Ased"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sedRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsedRE"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->SelectExpr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->selectOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AselectOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->selem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aselem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Self</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ASelf"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->selfAxis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AselfAxis"
->Text.XML.HXT.XPath.NavTree</A
->, Text.XML.HXT.XPath.XPathDataTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->semi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->separator</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Seq</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Schema</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->seqA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->seqF</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->seqM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetAttribute"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->setAttrName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetAttrName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->setChildren</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AsetChildren"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetCmt"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setDefaultBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDefaultBaseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setDocumentStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setDocumentStatusFromSystemState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setDTDAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetDTDAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setDTDAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetDTDAttrValue"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setElemAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemAttrl"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->setElemName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setErrMsgStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrMsgStatus"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setErrorMsgHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrorMsgHandler"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setErrStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrStatus"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setMimeTypeTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetMimeTypeTable"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setMimeTypeTableFromFile</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetMimeTypeTableFromFile"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AsetNamespace"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->setNode</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AsetNode"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParam"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setParamInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamInt"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setParamList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamList"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setParamString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamString"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->setPiName</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetPiName"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetQName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setRngName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngName"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setRngNameDiv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngNameDiv"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setRngNameRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngNameRef"
->Text.XML.HXT.RelaxNG.BasicArrows</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"
->Control.Arrow.ArrowState</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetText"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setTraceLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetTraceLevel"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setUriMap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetUriMap"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->setUserState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetUserState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->share</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Atom.html#v%3Ashare"
->Data.Atom</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->showDatatype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AshowDatatype"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->showElemType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3AshowElemType"
->Text.XML.HXT.DOM.ShowXml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->showOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AshowOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->showTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AshowTrees"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->single</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->singleChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->singleChars</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->singleCharsT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->singles</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->skipS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->skipS0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->SLA</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->Control.Arrow.StateListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"
->Control.Arrow.StateListArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->SortK</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->SortKey</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sPace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sPace0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->spanA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->spi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aspi"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->split</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Asplit"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->splitExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->splitMatchByPrio</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitMatchByPrio"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->splitRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsplitRE"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->splitRegexA</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitRegexA"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->splitXmlRegex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitXmlRegex"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->sqattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asqattr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->St</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.Arrow.Pickle.Xml</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Step</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AStep"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->strictA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowNF.html#v%3AstrictA"
->Control.Arrow.ArrowNF</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->StringExpr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringProtocol</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AstringProtocol"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringToHexString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringToUpper</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringTrim</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringValid</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValid"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stringValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AstringValue"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stripDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripDocument"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Strips</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stripSpaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripSpaces"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->stripStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripStylesheet"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->substChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->substEntityRefs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstEntityRefs"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->substHtmlEntityRefs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->substXmlEntityRefs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->subtreeNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AsubtreeNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->swap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Aswap"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->systemLiteral</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tagA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TagName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplApply</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplApplyImports</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Template</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplAttribute</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplCall</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplChoose</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplComment</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplComposite</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplCopy</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplCopyOf</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplElement</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplForEach</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplMessage</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplProcInstr</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplText</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplValueOf</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TemplVariable</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->TestExpr</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Text</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->textDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->textEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->text_html</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->text_xml</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->text_xml_external_parsed_entity</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->thePicklerDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AthePicklerDTD"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->theSchema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AtheSchema"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AtheSchema"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->this</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Athis"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->thisM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->thisNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AtName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tokenize</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Atokenize"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tokenize'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Atokenize%27"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tokenizeRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tokenizeRE'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE%27"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->toMaybe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtoMaybe"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->toXPathTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AtoXPathTree"
->Text.XML.HXT.XPath.XPathToString</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->toXValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AtoXValue"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->trace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Atrace"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->traceDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceDoc"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->traceMsg</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceMsg"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->traceSource</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceSource"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->traceState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->traceString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceString"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->traceTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceTree"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transfAllCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCdata"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transfAllCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCharRef"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transfCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCdata"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transfCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCharRef"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferDefaultURI</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferEncoding</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferMessage</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferMimeType</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferPrefix</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferProtocol</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferStatus</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferURI</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transferVersion</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->transform</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-DocTransformation.html#v%3Atransform"
->Text.XML.HXT.DTDValidation.DocTransformation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Atransform"
->Text.XML.HXT.DTDValidation.Validation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->transformDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AtransformDoc"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Tree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#t%3ATree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->treeRepOfXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->tryFetchAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AtryFetchAttribute"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->TSFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->txt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Atxt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->TypeTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ATypeTest"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->t_root</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_root"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->t_xml</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ucs2</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ucs2BigEndianToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ucs2LittleEndianToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2LittleEndianToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->ucs2ToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2ToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Unary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnary"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->uncurry3</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry3"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->uncurry4</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry4"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Unicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeCharToUtf8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeCharToUtf8"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeRemoveNoneAscii</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeRemoveNoneLatin1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeString</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeToLatin1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeToUtf8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToUtf8"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unicodeToXmlEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Union</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnion"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unionExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunionExpr"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->uniqueNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespaces"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->uniqueNamespacesFromDeclAndQNames</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespacesFromDeclAndQNames"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->universalName</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->universalUri</TD
-><TD CLASS="indexlinks"
-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unlistA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unpickleDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AunpickleDoc"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AunpickleDoc"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->unsetParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AunsetParam"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->unzipTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunzipTree"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->upNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AupNT"
->Data.NavTree</A
->, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Uri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->uriMap2Attrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AuriMap2Attrs"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->UriMapping</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->usAscii</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->UsedAttribSets</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->UString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->UStringWithErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf16</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf16be</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf16beToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf16le</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf16leToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf8</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->UTF8Char</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8Char"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->UTF8String</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf8ToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->utf8ToUnicodeEmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicodeEmbedErrors"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->validate</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Avalidate"
->Text.XML.HXT.DTDValidation.Validation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->validateDoc</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-DocValidation.html#v%3AvalidateDoc"
->Text.XML.HXT.DTDValidation.DocValidation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDoc"
->Text.XML.HXT.DTDValidation.Validation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AvalidateDoc"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AvalidateDocument"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateDocumentWithRelax</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelax"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateDocumentWithRelaxSchema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelaxSchema"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateDocWithRelax</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateDocWithRelax"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->validateDTD</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AvalidateDTD"
->Text.XML.HXT.DTDValidation.DTDValidation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDTD"
->Text.XML.HXT.DTDValidation.Validation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateIds</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-IdValidation.html#v%3AvalidateIds"
->Text.XML.HXT.DTDValidation.IdValidation</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"
->Text.XML.HXT.Arrow.Namespace</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateRelax</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateSchema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateSchemaWithSpezification</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchemaWithSpezification"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateWithoutSpezification</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithoutSpezification"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateWithRelaxAndHandleErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateWithRelaxAndHandleErrors"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateWithSpezification</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"
->Text.XML.HXT.RelaxNG.Validator</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->validateXMLDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateXMLDoc"
->Text.XML.HXT.RelaxNG.Validation</A
->, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Value</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->valueOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOf"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->valueOfDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOfDTD"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->varEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AvarEnv"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->VarExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AVarExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->Variable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->VarName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->VarTab</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->versionInfo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->versionNum</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->versionOptions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AversionOptions"
->Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_0</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_any</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_children</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_choice</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_empty</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_mixed</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_no</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_null</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_option</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_pcdata</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_plus</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_seq</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_star</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->v_yes</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->w3cDatatypeLib</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Aw3cDatatypeLib"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->w3cNS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Aw3cNS"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->warn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Awarn"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->When</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->when</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->whenM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->whenNot</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->whenNotM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
->Data.Tree.NTree.Filter</A
->, Text.XML.HXT.DOM.XmlTreeTypes</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->whenNotP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->whenP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"
->Control.Arrow.ArrowIf</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->WhenPart</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.CompiledStylesheet</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->withDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"
->Control.Arrow.ArrowList</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->withExtendedUserState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithExtendedUserState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->withOtherUserState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithOtherUserState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->withTraceLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithTraceLevel"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->writeDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"
->Text.XML.HXT.Arrow.WriteDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->writeDocumentToString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocumentToString"
->Text.XML.HXT.Arrow.WriteDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXAttr"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xboolean</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axboolean"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCdata"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCharRef"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCmt"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXDTD"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXEntityRef"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXError"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xhtmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html#v%3AxhtmlEntities"
->Text.XML.HXT.Parser.XhtmlEntities</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->XIOState</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XIOSys</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOSys"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XIOSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_attrList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_attrList"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_baseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_baseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_defaultBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_defaultBaseURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_errorModule</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorModule"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_errorMsgCollect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgCollect"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_errorMsgHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgHandler"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_errorMsgList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgList"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_errorStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorStatus"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_mimeTypes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_mimeTypes"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_sysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_sysState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_trace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_trace"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xio_userState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_userState"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlArrow</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlArrowS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrowS"
->Text.XML.HXT.DTDValidation.TypeDefs</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlChar"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xMLDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xMLDecl'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl%27"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlEntities.html#v%3AxmlEntities"
->Text.XML.HXT.Parser.XmlEntities</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlLetter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlLetter"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlNameChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameChar"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlNamespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlNameStartChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameStartChar"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlNCNameChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameChar"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlNCNameStartChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameStartChar"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
->Text.XML.HXT.DOM.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlnsNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlnsNamespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlnsQN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AxmlnsQN"
->Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlPickler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlRegex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
->Text.XML.HXT.Arrow.XmlRegex</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlSFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxmlSpace"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlSpaceChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlSpaceChar"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XmlTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlTreeToPatternFormatedString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternFormatedString"
->Text.XML.HXT.RelaxNG.PatternToString</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlTreeToPatternString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternString"
->Text.XML.HXT.RelaxNG.PatternToString</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xmlTreeToPatternStringTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternStringTree"
->Text.XML.HXT.RelaxNG.PatternToString</A
->, Text.XML.HXT.RelaxNG</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XNS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXNS"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xnumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axnumber"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xp4Tuple</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp4Tuple"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp4Tuple"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xp5Tuple</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp5Tuple"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp5Tuple"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xp6Tuple</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp6Tuple"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp6Tuple"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpAddFixedAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAddFixedAttr"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAddFixedAttr"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpAlt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAlt"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAlt"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xPathAdd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathAdd"
->Text.XML.HXT.XPath.XPathArithmetic</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPathDiv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathDiv"
->Text.XML.HXT.XPath.XPathArithmetic</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPathFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPathMod</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMod"
->Text.XML.HXT.XPath.XPathArithmetic</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPathMulti</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMulti"
->Text.XML.HXT.XPath.XPathArithmetic</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPathNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPathParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"
->Text.XML.HXT.XSLT.Application</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPathUnary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathUnary"
->Text.XML.HXT.XPath.XPathArithmetic</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPathValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttr"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttr"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpAttrFixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrFixed"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrFixed"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpAttrImplied</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrImplied"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrImplied"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpChoice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpChoice"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpChoice"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPCommentNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPCommentNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpCondSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpCondSeq"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpCondSeq"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpDefault"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpDefault"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpElem</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElem"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElem"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpElemWithAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElemWithAttrValue"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElemWithAttrValue"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXPi"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpickle</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axpickle"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axpickle"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpickleDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleDocument"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpickleDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleDTD"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpickleVal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleVal"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpickleWriteDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleWriteDTD"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpLift</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpLift"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpLift"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpLiftMaybe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpLiftMaybe"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpLiftMaybe"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpList"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpList"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpList1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpList1"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpList1"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpMap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpMap"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpMap"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpOption</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpOption"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpOption"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpPair</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPPINode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPPINode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpPrim</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPrim"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPrim"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpSeq"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpSeq"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpText0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpText0DT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0DT"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0DT"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpTextDT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPTextNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTree"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTree"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTrees"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTrees"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpTriple</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpUnit</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpUnit"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpUnit"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPValue2NodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AxPValue2NodeSet"
->Text.XML.HXT.XPath.XPathToNodeSet</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPValue2String</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2String"
->Text.XML.HXT.XPath.XPathToString</A
->, Text.XML.HXT.XPath</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xPValue2XmlTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2XmlTrees"
->Text.XML.HXT.XPath.XPathToString</A
->, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPVBool</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVBool"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPVError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVError"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPVNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPVNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XPVString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVString"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpWrap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpWrapMaybe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrapMaybe"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrapMaybe"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpXmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpXmlText"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpXmlText"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xpZero</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpZero"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpZero"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->xread</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsdParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AxsdParam"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_anyURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_anyURI"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_enumeration</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_enumeration"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_length</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_length"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_maxLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxLength"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_minLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minLength"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_NCName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NCName"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_pattern</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_pattern"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsd_QName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_QName"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->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 CLASS="indexrow"
-><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 CLASS="indexrow"
-><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
-><TR CLASS="indexrow"
-><TD CLASS="indexentry" COLSPAN="2"
->xshow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"
->Text.XML.HXT.DOM.ShowXml</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xshowEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AxshowEscapeXml"
->Text.XML.HXT.Arrow.Edit</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltApplyImports</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltApplyStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheet"
->Text.XML.HXT.XSLT.XsltArrows</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltApplyStylesheetFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheetFromURI"
->Text.XML.HXT.XSLT.XsltArrows</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltApplyTemplates</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltAttribute</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltAttributeSet</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltCallTemplate</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltChoose</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltComment</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltCompileStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"
->Text.XML.HXT.XSLT.XsltArrows</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltCompileStylesheetFromURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"
->Text.XML.HXT.XSLT.XsltArrows</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltCopy</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltCopyOf</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltDataType</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltElement</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltElements</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltExlcudeResultPrefixes</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltExlcudeResultPrefixesLRE</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltExtensionElementPrefixes</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltExtensionElementPrefixesLRE</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltForEach</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltHRef</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltIf</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltImport</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltInclude</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltMatch</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltMessage</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltMode</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltNamespace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltNamespaceAlias</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltOrder</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltOtherwise</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltParam</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPrefix"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltPreserveSpace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltPriority</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltProcInstr</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltResultPrefix</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltSelect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSelect"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltSort</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltStripSpace</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheet"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltStylesheetPrefix</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltTemplate</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltTerminate</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltTest</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltText</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltTransform</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUri"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltUseAttributeSets</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltUseAttributeSetsLRE</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltValueOf</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltVariable</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltVersion</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltVersionLRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersionLRE"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltWhen</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->xsltWithParam</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.XSLT.Names</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XStep</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
->Text.XML.HXT.XPath.XPathDataTypes</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR CLASS="indexrow"
-><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 CLASS="indexrow"
-><TD CLASS="indexentry"
->xstring</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axstring"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXTag"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
->XText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXText"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell. (Index)</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"
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</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 COLSPAN="2" STYLE="padding-top:5px;"
+><FORM onsubmit="full_search(); return false;" ACTION=""
+>Search: <INPUT ID="searchbox" onkeyup="quick_search()"
+> <INPUT VALUE="Search" TYPE="submit"
+> <SPAN ID="searchmsg"
+> </SPAN
+></FORM
+></TD
+></TR
+><TR
+><TD
+><TABLE ID="indexlist" CELLPADDING="0" CELLSPACING="5"
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>$$</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3A%24%24"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>$&lt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>$&lt;$</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>$&lt;&lt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>$&lt;&lt;&lt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>$&lt;&lt;&lt;&lt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&amp;&amp;&amp;</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>***</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>+++</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>+=</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>/&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>:-&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&lt;&amp;&amp;&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3A%3C%26%26%3E"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&lt;+&gt;</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>&lt;/</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&lt;&lt;&lt;</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&lt;&lt;^</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&lt;||&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3A%3C%7C%7C%3E"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&gt;.</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&gt;&gt;.</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&gt;&gt;&gt;</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>&gt;&gt;^</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Abs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAbs"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>accessState</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"
+>Control.Arrow.ArrowState</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addAlias</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaddAlias"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addAtt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AaddAtt"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>addAttr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AaddAttr"
+>Text.XML.HXT.DOM.XmlNode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addCont</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AaddCont"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addDoctypeDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddDoctypeDecl"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addEntries</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3AaddEntries"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addEntry</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3AaddEntry"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addHeadlineToXmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddHeadlineToXmlDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addXHtmlDoctypeFrameset</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeFrameset"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addXHtmlDoctypeStrict</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeStrict"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addXHtmlDoctypeTransitional</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeTransitional"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addXmlPi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPi"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>addXmlPiEncoding</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPiEncoding"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>aelem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aaelem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>After</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>after</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aafter"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>aliasUriMapping</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaliasUriMapping"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>allBut</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>allBut1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AllowedDatatypes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AllowedParams</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Alt</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Ancestor</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestor"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ancestorAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AncestorOrSelf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestorOrSelf"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ancestorOrSelfAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorOrSelfAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>And</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAnd"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Any</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AnyName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AnyNameExcept</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>app</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>application_xhtml</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>application_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3Aapplication_xml"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>application_xml_dtd</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>application_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>applyA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>applyStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"
+>Text.XML.HXT.XSLT.Application</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>applyStylesheetWParams</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"
+>Text.XML.HXT.XSLT.Application</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>appPickle</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappPickle"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AappPickle"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>appUnPickle</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappUnPickle"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AappUnPickle"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arr</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arr2</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arr2A</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arr2L</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arr3</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arr4</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arrIO</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arrIO0</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO0"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arrIO2</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO2"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arrIO3</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO3"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arrIO4</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO4"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>arrL</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Arrow</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowApply</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowChoice</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowIf</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowIO</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowIOIf</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowList</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowLoop</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>ArrowMonad</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Type/Class)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowNF</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"
+>Control.Arrow.ArrowNF</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowPlus</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowState</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
+>Control.Arrow.ArrowState</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ArrowZero</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>asciiLetter</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>assembleStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AassembleStylesheet"
+>Text.XML.HXT.XSLT.Compilation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>AssocList</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#t%3AAssocList"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Atom</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Atom.html#t%3AAtom"
+>Data.Atom</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attachNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AattachNsEnv"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ATTLIST</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AATTLIST"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attlistDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AattlistDecl"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attrDec</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AattrDec"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attrEscapeXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AttribSet</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Attribute</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAttribute"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>3 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attributeAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AattributeAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Attributes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attributes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Aattributes"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AttributeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attrNodes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AattrNodes"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>attrValue</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AattrValue"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attrValueT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>attrValueT'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT%27"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>AxisSpec</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_addDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_ancestor</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_ancestor_or_self</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor_or_self"
+>Text.XML.HXT.XPath.XPathKeywords</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_attribute</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_canonicalize</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_check_namespaces</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_check_restrictions</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_child</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_collect_errors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_column</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_contentLength</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_default</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_default_baseuri</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_descendant</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_descendant_or_self</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_canonicalize</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_check_namespaces</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_check_restrictions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_collect_errors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_issue_errors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_issue_warnings</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_preserve_comment</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_remove_whitespace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_use_curl</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_validate</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_validate_externalRef</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_do_not_validate_include</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_encoding</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_error</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_error_log</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_following</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_following_sibling</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_help</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_ignore_encoding_errors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_ignore_none_xml_contents</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_indent</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_issue_errors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_issue_warnings</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_kind</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_line</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_mime_types</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_modifier</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_module</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_name</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_namespace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_no_empty_elements</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_no_xml_pi</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_numberOfErrors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_options_curl</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_output_changes</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_output_encoding</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_output_file</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_output_html</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_output_xml</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_parent</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_parse_by_mimetype</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_parse_html</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_parse_xml</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_peref</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_preceding</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_preceding_sibling</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_preserve_comment</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_propagate_errors</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_proxy</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_relaxSimplificationChanges</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aa_relaxSimplificationChanges"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_relax_schema</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_remove_whitespace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_self</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_show_haskell</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_show_tree</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_source</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_standalone</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_status</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_strict_input</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_tagsoup</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_trace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_type</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_url</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_use_curl</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_validate</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_validate_externalRef</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_validate_include</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_value</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_verbose</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_version</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_xml</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>a_xmlns</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>bar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>buildUniversalName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>canonicalizeAllNodes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>canonicalizeContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeContents"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>canonicalizeForXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>cardTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AcardTree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>catA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>cDSect</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeAttrl</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeAttrName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeBaseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeBaseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeChildren</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AchangeChildren"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeCmt</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeCmt"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeDTDAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeDTDAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeElemName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeElemName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeNode</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AchangeNode"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changePiName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangePiName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeQName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeState</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"
+>Control.Arrow.ArrowState</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeSysParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeSysParam"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>changeText</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeText"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>changeUserState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeUserState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CharData</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>charData</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>charData'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData%27"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>charRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>charRefT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>charRngs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AcharRngs"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>chars</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Achars"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>charToHexString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkAM</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAM"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkAMC</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAMC"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkAttributeValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AcheckAttributeValue"
+>Text.XML.HXT.DTDValidation.AttributeValueValidation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkAttrModell</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAttrModell"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkContentModell</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckContentModell"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkErr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckErr"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkPickler</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AcheckPickler"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3AcheckRE"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3AcheckRE"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>checkRngName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AcheckRngName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>Child</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AChild"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>childAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AchildAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ChildNodes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>childNodes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Choice</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>choice</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Achoice"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>choiceA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>cleanupNamespaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>clearErrStatus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AclearErrStatus"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>closesHtmlTag</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>cmt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Acmt"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>codeBlocks</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-Blocks.html#v%3AcodeBlocks"
+>Text.XML.HXT.RelaxNG.Unicode.Blocks</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>collapseAllXText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseAllXText"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>collapseXText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>collectNamespaceDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>collectPrefixUriPairs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectPrefixUriPairs"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>collectTextnodes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcollectTextnodes"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>comma</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>comment</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>compareURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AcompareURI"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>CompiledStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+>, <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
+>Text.XML.HXT.XSLT.XsltArrows</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>CompQName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>CompStylesheet</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ComputedQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>computeNTestPriority</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputeNTestPriority"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>computePriority</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputePriority"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>concatExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AconcatExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>concRes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CONDSECT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONDSECT"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ConLen</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ConNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ConPos</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>constA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>constL</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>containing</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>contains</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3Acontains"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CONTENT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONTENT"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>content</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>contents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Acontents"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ContentType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>contentWithTextDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Context</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>contextAttributes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AcontextAttributes"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>contextBaseAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AcontextBaseAttr"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>createDocumentOrder</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrder"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>createDocumentOrderReverse</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrderReverse"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>createNameClass</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreateNameClass"
+>Text.XML.HXT.RelaxNG.CreatePattern</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>createPatternFromXmlTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreatePatternFromXmlTree"
+>Text.XML.HXT.RelaxNG.CreatePattern</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>createSimpleForm</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AcreateSimpleForm"
+>Text.XML.HXT.RelaxNG.Simplification</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CTComplex</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CTEmpty</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CTNone</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>CTSimple</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>c_err</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>c_fatal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>c_ok</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>c_warn</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Data</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DataExcept</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dataNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AdataNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Datatype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DatatypeAllows</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>datatypeAllows</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeAllows"
+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DatatypeCheck</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DataTypeDescr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DatatypeEqual</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>datatypeEqual</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeEqual"
+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DatatypeLibraries</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>datatypeLibraries</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeLibraries"
+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DatatypeLibrary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DatatypeName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>decimalStringToInt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decode</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Char-UTF8.html#v%3Adecode"
+>Data.Char.UTF8</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decodeDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AdecodeDocument"
+>Text.XML.HXT.Arrow.DocumentInput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decodeEmbedErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Char-UTF8.html#v%3AdecodeEmbedErrors"
+>Data.Char.UTF8</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decodeOne</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Char-UTF8.html#v%3AdecodeOne"
+>Data.Char.UTF8</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decodeUtf8</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8"
+>Text.XML.HXT.DOM.UTF8Decoding</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decodeUtf8EmbedErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8EmbedErrors"
+>Text.XML.HXT.DOM.UTF8Decoding</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>decodeUtf8IgnoreErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8IgnoreErrors"
+>Text.XML.HXT.DOM.UTF8Decoding</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DecodingFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DecodingFctEmbedErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>deep</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>deepest</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>defaultMimeTypeTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AdefaultMimeTypeTable"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>defineOrigName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>delEntries</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3AdelEntries"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>delEntry</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3AdelEntry"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>delta</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Adelta"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Adelta"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>depthTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AdepthTree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Descendant</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendant"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>descendantAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DescendantOrSelf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendantOrSelf"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>descendantOrSelfAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantOrSelfAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Div</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADiv"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DOCTYPE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ADOCTYPE"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>doctypedecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>document</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>document'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument%27"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>documentStatusOk</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AdocumentStatusOk"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>doubles</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>downNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AdownNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dropCont</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AdropCont"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtAllowedTypes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtAllowedTypes"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtAllowsFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtAllowsFct"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DTC</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdChars</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdChars"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdDeclEnd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclEnd"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdDeclStart</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclStart"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdDeclTokenizer</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclTokenizer"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>DTDdescr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.DTD</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdDescr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AdtdDescr"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdDescrToXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AdtdDescrToXml"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DTDElem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>DTDescr</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtdToken</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdToken"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtd_default</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_default"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtd_kind</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_kind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtd_modifier</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_modifier"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtd_name</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_name"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtd_type</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_type"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtd_value</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_value"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtEqualFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtEqualFct"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtLib</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtLib"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtName"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>dtParams</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtParams"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>eelem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aeelem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ELEMENT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AELEMENT"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Element</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>element</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>elementDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AelementDecl"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>elementDeclarations</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelementDeclarations"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>elementDecs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelementDecs"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>elemName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemName"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>elemNames</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemNames"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ElemRef</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>elemRefs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemRefs"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Empty</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>emptyHtmlTags</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AemptyHtmlTags"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>emptyNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AemptyNodeSet"
+>Text.XML.HXT.XPath.XPathToNodeSet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>emptySt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AemptySt"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>encName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>encode</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Char-UTF8.html#v%3Aencode"
+>Data.Char.UTF8</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>encodeDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AencodeDocument"
+>Text.XML.HXT.Arrow.DocumentOutput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>encodeOne</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Char-UTF8.html#v%3AencodeOne"
+>Data.Char.UTF8</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>encodingDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ENTITY</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AENTITY"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>entityCharT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>entityDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AentityDecl"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>entityRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>entityRefT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>entityTokensT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>entityValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>entityValueT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Env</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AEnv"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Eq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AEq"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>eq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>equalQNameBy</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>equivQName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>equivUri</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>err</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aerr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ErrLevel</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ErrMessage</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ErrMsg</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Error</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Char-UTF8.html#t%3AError"
+>Data.Char.UTF8</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgCollect</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgCollect"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgDataLibQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataLibQName"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgDataTypeNotAllowed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgDataTypeNotAllowed0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed0"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgDataTypeNotAllowed2</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed2"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgEqual</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgEqual"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgIgnore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgIgnore"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgStderr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderr"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>errorMsgStderrAndCollect</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderrAndCollect"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>escapeHtmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeHtmlDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>escapeURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>escapeXmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeXmlDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>evalExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AevalExpr"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>evalFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AevalFct"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>exLocal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexLocal"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>ExName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AExName"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>expandNSDecls</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexpandNSDecls"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>expandURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>expandURIString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Expr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>expr2XPathTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Aexpr2XPathTree"
+>Text.XML.HXT.XPath.XPathToString</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>extensionToMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AextensionToMimeType"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>exUri</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexUri"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>FctArguments</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>FctExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFctExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>FctName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>feedPreserves</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedPreserves"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>feedSpaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedSpaces"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>feedStrips</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>fetchAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttribute"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>fetchAttributeWDefault</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttributeWDefault"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>filterA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AfilterA"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>filterErrorMsg</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AfilterErrorMsg"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>FilterExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFilterExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>filterTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTree"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>filterTreeCtx</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTreeCtx"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>first</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>firstChild</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AfirstChild"
+>Text.XML.HXT.RelaxNG.CreatePattern</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Float</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFloat"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>foldTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AfoldTree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Following</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowing"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>followingAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>FollowingSibling</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowingSibling"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>followingSiblingAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingSiblingAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatNTreeF</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"
+>Data.Tree.NTree.TypeDefs</A
+>, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatStringList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringList"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatStringListArr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListArr"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatStringListId</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListId"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatStringListPairs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListPairs"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatStringListPatt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListPatt"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatStringListQuot</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListQuot"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AformatTree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatXmlContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"
+>Text.XML.HXT.DOM.FormatXmlTree</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>formatXmlTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"
+>Text.XML.HXT.DOM.FormatXmlTree</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>foundErr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AfoundErr"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>fromJustErr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfromJustErr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>fromLA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"
+>Control.Arrow.ListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>fromSLA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"
+>Control.Arrow.StateListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>generalOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AgeneralOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>GenExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGenExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAliases</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAliases"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAllParams</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParams"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAllParamsString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParamsString"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAtt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AgetAtt"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAttributeSets</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAttributeSets"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getAttrl</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getAttrName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getAttrValue0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue0"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getBaseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetBaseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getCdata</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCdata"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getCharRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCharRef"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getChildren</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AgetChildren"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>getChildrenNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AgetChildrenNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getChildrenPattern</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetChildrenPattern"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getCmt</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCmt"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getCont</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-IO-GetFILE.html#v%3AgetCont"
+>Text.XML.HXT.IO.GetFILE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-IO-GetHTTPLibCurl.html#v%3AgetCont"
+>Text.XML.HXT.IO.GetHTTPLibCurl</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>3 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AgetCont"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getConvFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetConvFct"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDecodingFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFct"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDecodingFctEmbedErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFctEmbedErrors"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDefaultBaseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetDefaultBaseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDocumentContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"
+>Text.XML.HXT.Arrow.ProcessDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDTDAttributes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AgetDTDAttributes"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getDTDAttrl</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDTDAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getDTDPart</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDPart"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getDTDSubset</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AgetDTDSubset"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getElemAndAttrNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getElemName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetElemName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getElemNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getEncoding</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetEncoding"
+>Text.XML.HXT.Arrow.DocumentInput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getEntityRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetEntityRef"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getErrorLevel</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorLevel"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getErrorMessages</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrorMessages"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getErrorMsg</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorMsg"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AgetErrors"
+>Text.XML.HXT.RelaxNG.Simplification</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getErrStatus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrStatus"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getFragmentFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetFragmentFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getFromNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getKeyTab</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetKeyTab"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getLocalPart</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetLocalPart"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getMatchRules</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetMatchRules"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getNameClassFromPattern</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetNameClassFromPattern"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getNamedRules</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetNamedRules"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getNamePrefix</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamePrefix"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getNamespaceDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getNamespaceUri</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamespaceUri"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getNode</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AgetNode"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getOutputEncoding</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AgetOutputEncoding"
+>Text.XML.HXT.Arrow.DocumentOutput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getOutputEncodingFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetOutputEncodingFct"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParam"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getParamInt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamInt"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getParamString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamString"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getPathFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPathFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getPatternName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetPatternName"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getPiContent</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiContent"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getPiName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getPortFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPortFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getQAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getQAttrValue0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue0"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getQualifiedName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetQualifiedName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getQueryFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetQueryFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRegNameFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetRegNameFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrAttribute"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrCombine</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrCombine"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrDatatypeLibrary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrDatatypeLibrary"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrDescr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrDescr"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrHref</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrHref"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrNs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrNs"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRngAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrType"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRuleImports</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleImports"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRuleMode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleMode"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRuleName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleName"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getRulePrio</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRulePrio"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getSchemeFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSchemeFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getState</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"
+>Control.Arrow.ArrowState</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getStdinCont</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-IO-GetFILE.html#v%3AgetStdinCont"
+>Text.XML.HXT.IO.GetFILE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getStrips</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetStrips"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getSysParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSysParam"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getText</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetText"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getTraceLevel</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetTraceLevel"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getUniversalName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getUniversalUri</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalUri"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getURIContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetURIContents"
+>Text.XML.HXT.Arrow.DocumentInput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getUriMap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AgetUriMap"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getUserInfoFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserInfoFromURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getUserState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getVariables</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVariables"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getVarName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarName"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getVarTab</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetVarTab"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXmlContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"
+>Text.XML.HXT.Arrow.DocumentInput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXmlEntityContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlEntityContents"
+>Text.XML.HXT.Arrow.DocumentInput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getXPathNodeSet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSet"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXPathNodeSetWithNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSetWithNsEnv"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXPathSubTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXPathSubTreesWithNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTreesWithNsEnv"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getXPathTrees</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getXPathTreesInDoc</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getXPathTreesInDocWithNsEnv</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>getXPathTreesWithNsEnv</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>getXPathWithNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathWithNsEnv"
+>Text.XML.HXT.XPath.XPathEval</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Greater</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreater"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>GreaterEq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreaterEq"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Group</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>group</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Agroup"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>gt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>guards</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>guardsP</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>guessEncoding</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AguessEncoding"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AhasAttribute"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasDTDAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasDTDAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasDTDAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AhasDTDAttrValue"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasEntry</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3AhasEntry"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>haskellRepOfXmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasLocalPart</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasLocalPart"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasNamePrefix</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamePrefix"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasNamespaceUri</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamespaceUri"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasNameWith</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNameWith"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasQAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasQAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrAttribute"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrCombine</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrCombine"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrDatatypeLibrary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrDatatypeLibrary"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrHref</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrHref"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrNs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrNs"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrType"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasRngName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasText"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hasXmlPi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhasXmlPi"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hexStringToInt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AhexStringToInt"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hread</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Ahread"
+>Text.XML.HXT.Arrow.ReadDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>httpPrefix</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AhttpPrefix"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>hxt_version</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Version.html#v%3Ahxt_version"
+>Text.XML.HXT.Version</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ifA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ifP</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>IfThen</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>indentDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>initialState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>initialSysState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialSysState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>inputOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AinputOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>insertChildrenAfter</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>insertChildrenAt</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>insertTreeTemplate</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Interleave</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>interleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Ainterleave"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>intToCharRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>intToCharRefHex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>intToHexString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>IOLA</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
+>Control.Arrow.IOListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOListArrow.html#v%3AIOLA"
+>Control.Arrow.IOListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>IOSArrow</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>IOSLA</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
+>Control.Arrow.IOStateListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOStateListArrow.html#v%3AIOSLA"
+>Control.Arrow.IOStateListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>IOStateArrow</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isAttlistOfElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisAttlistOfElement"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isAttr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisAttr"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isAttributeListGroupInterleaveOneOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeListGroupInterleaveOneOrMore"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isAttributeRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRef"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRefTextListGroupInterleaveOneOrMoreEmpty"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isAttributeRefTextListInterleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRefTextListInterleave"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisAttrType"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isCdata</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCdata"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isCharRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCharRef"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isChoiceGroupInterleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisChoiceGroupInterleave"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isChoiceGroupInterleaveOneOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisChoiceGroupInterleaveOneOrMore"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isCmt</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCmt"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDeclaredNamespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisDeclaredNamespace"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDefaultAttrKind</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDefaultAttrKind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDefineOneOrMoreZeroOrMoreOptionalListMixed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisDefineOneOrMoreZeroOrMoreOptionalListMixed"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isDTD</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisDTD"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDAttlist</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDAttlist"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDAttlistNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDAttlistNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDCondSect</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDCondSect"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDContent</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDContent"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDContentNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDContentNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDDoctype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDDoctype"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDDoctypeNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDDoctypeNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDElement"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDElementNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDElementNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDEntity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDEntity"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDNameNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDNameNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDNotation</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDNotation"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDPEntity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPEntity"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isDTDPERef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPERef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isElem</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisElem"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isElemNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisElemNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isElemType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisElemType"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isEmptyElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEmptyElement"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isEmptyHtmlTag</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisEmptyHtmlTag"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isEntityRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisEntityRef"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isEnumAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEnumAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isError</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisError"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isExternalRefInclude</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisExternalRefInclude"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isFixedAttrKind</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisFixedAttrKind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isGroupInterleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisGroupInterleave"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isHtmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AisHtmlMimeType"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isIdAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isIdRefAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdRefAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isInner</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AisInner"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isInnerHtmlTagOf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisInnerHtmlTagOf"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isIOA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"
+>Control.Arrow.ArrowIO</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isLeaf</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AisLeaf"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isMatchExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisMatchExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isMixedContentElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisMixedContentElement"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisName"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNameAnyNameNsName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameAnyNameNsName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNameNsName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameNsName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNameNsNameValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameNsNameValue"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNamespaceDeclAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNameSpaceName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisNameSpaceName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNCName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisNCName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNmtoken</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNmtoken"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNotationAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisNotationAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNotInNodeList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AisNotInNodeList"
+>Text.XML.HXT.XPath.XPathFct</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNsAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisNsAttr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNullXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisNullXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNumber"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_1"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_10</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_11</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_13</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_14</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_15</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_16</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_2</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_3</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_4</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_5</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_6</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_7</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_8</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso8859_9</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isoLatin1</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_10</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_10"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_11</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_11"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_13</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_13"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_14</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_14"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_15</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_15"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_16</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_16"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_2</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_2"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_3</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_3"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_4</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_4"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_5</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_5"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_6</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_6"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_7</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_7"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_8</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_8"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>iso_8859_9</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_9"
+>Text.XML.HXT.DOM.IsoLatinTables</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AisParam"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isPi</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisPi"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxAfter</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAfter"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxAnyURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisRelaxAnyURI"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAttribute"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxChoice</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxChoice"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxData</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxData"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxDataExcept</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxDataExcept"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxElement"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxEmpty</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxEmpty"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxGroup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxGroup"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxInterleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxInterleave"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxList"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxNotAllowed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxNotAllowed"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxOneOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxOneOrMore"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxText"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRelaxValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxValue"
+>Text.XML.HXT.RelaxNG.PatternFunctions</A
+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRequiredAttrKind</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisRequiredAttrKind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAnyName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAnyName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrAttribute"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrCombine</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrCombine"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrDatatypeLibrary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrDatatypeLibrary"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrHref</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrHref"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttribute"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrNs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrNs"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngAttrType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrType"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngChoice</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngChoice"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngCombine</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngCombine"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngData</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngData"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngDefine</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngDefine"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngDiv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngDiv"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngElement"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngEmpty</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngEmpty"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngExcept</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngExcept"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngExternalRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngExternalRef"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngGrammar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngGrammar"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngGroup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngGroup"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngInclude</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngInclude"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngInterleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngInterleave"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngList"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngMixed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngMixed"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngNotAllowed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngNotAllowed"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngNsName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngNsName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngOneOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngOneOrMore"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngOptional</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngOptional"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngParam"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngParentRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngParentRef"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngRef"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngRelaxError</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngRelaxError"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngStart</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngStart"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngText"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngType"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngValue"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isRngZeroOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngZeroOrMore"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isRoot</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisRoot"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScAttr"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScCharData</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScCharData"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScElem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScElem"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScElemRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScElemRef"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScEnum</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScEnum"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScFixed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScFixed"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScList"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScOpt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScOpt"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScSARE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScSARE"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isScXsd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScXsd"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>issueErr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueErr"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>issueFatal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueFatal"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>issueWarn</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueWarn"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>isText</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisText"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isTrueValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AisTrueValue"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeC</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeC"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeCc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCc"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeCf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCf"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeCo</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCo"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeCs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCs"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeL</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeL"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeLl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLl"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeLm</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLm"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeLo</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLo"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeLt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLt"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeLu</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLu"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeM</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeM"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeMc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMc"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeMe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMe"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeMn</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMn"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeN"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeNd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNd"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeNl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNl"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeNo</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNo"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeP"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePc"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePd"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePe"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePf"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePi"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePo</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePo"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodePs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePs"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeS"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeSc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSc"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeSk</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSk"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeSm</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSm"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeSo</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSo"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeZ</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZ"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeZl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZl"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeZp</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZp"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnicodeZs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZs"
+>Text.XML.HXT.RelaxNG.Unicode.CharProps</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isUnparsedEntity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisUnparsedEntity"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isWellformedNameSpaceName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNameSpaceName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isWellformedNSDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNSDecl"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isWellformedQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isWellformedQualifiedName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isWhiteSpace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisWhiteSpace"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isWhitespaceNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisWhitespaceNode"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXml11SpaceChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlBaseChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlBaseChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlCombiningChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlCombiningChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlControlOrPermanentlyUndefined</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlControlOrPermanentlyUndefined"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlDigit</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlDigit"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlExtender</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlExtender"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlIdeographicChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlIdeographicChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlLatin1Char</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLatin1Char"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlLetter</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AisXmlMimeType"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlNameChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlNameStartChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameStartChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlNCNameChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlNCNameStartChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameStartChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlPi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisXmlPi"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlPubidChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlPubidChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isXmlSpaceChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isZero</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AisZero"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>KeyTab</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>keyword</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>keywords</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Kleisli</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Type/Class)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_any</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_cdata</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_cdata"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_default</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_empty</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_entities</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_entity</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_enumeration</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_fixed</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_id</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_idref</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_idrefs</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_ignore</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_implied</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_include</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_ndata</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_nmtoken</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_nmtokens</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_notation</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_pcdata</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_peref</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_public</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_required</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>k_system</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>LA</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>Control.Arrow.ListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ListArrow.html#v%3ALA"
+>Control.Arrow.ListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lastChild</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AlastChild"
+>Text.XML.HXT.RelaxNG.CreatePattern</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>latin1ToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Alatin1ToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>left</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>leftApp</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>leftNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AleftNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Less</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALess"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>LessEq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALessEq"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>liftSt</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOStateListArrow.html#v%3AliftSt"
+>Control.Arrow.IOStateListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>List</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>listA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Literal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>LiteralExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALiteralExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>LiteralQName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>LocalName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>localPart</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>localPart'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>LocationPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>LocPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALocPath"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lookup1</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3Alookup1"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lookupAlias</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupAlias"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lookupDef</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-AssocList.html#v%3AlookupDef"
+>Data.AssocList</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lookupPrefix</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AlookupPrefix"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lookupStrip</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lookupStrip1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip1"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>loop</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lpar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>lt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mapTreeCtx</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmapTreeCtx"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>markupdecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>match</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Amatch"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>matches</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Amatches"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Amatches"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>MatchExpr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>matchRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AmatchRE"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>matchRegexA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchRegexA"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>MatchRule</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>matchWithRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmatchWithRE"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>matchXmlRegex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchXmlRegex"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>MatRule</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>maybePlus</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AmaybePlus"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>maybeStar</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AmaybeStar"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mergeA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mergeAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmergeAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mergeNotAllowed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AmergeNotAllowed"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mimeTypeDefaults</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypeDefaults.html#v%3AmimeTypeDefaults"
+>Text.XML.HXT.DOM.MimeTypeDefaults</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>MimeTypeTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Minus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMinus"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>misc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkAbsURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkAlt</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkAlt"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkAlt"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkAttr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttr"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkAttrNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttrNode"
+>Text.XML.HXT.DOM.XmlNode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkBoolExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkBoolExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkCdata</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCdata"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkCharRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCharRef"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkCmt</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCmt"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkCompl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkCompl"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkDif</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDif"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkDot</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDot"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkDot"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkDTDDoctype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDDoctype"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkDTDElem</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDElem"
+>Text.XML.HXT.DOM.XmlNode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkDTDElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElement"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkDTDEntity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDEntity"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkDTDNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDNode"
+>Text.XML.HXT.DOM.XmlNode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkDTDPEntity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDPEntity"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkelem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkElement</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElement"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkElementNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElementNode"
+>Text.XML.HXT.DOM.XmlNode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkEntityRef</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkEntityRef"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkError</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkError"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkExName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkExName"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkLeaf</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AmkLeaf"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AmkLeaf"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkLiteralExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkLiteralExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkNsName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkOpt</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkOpt"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkOpt"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkPi</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkPi"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkPrefixLocalPart</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkPrim</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrim"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkPrimA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrimA"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkqelem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkqelem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkQName'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkRep</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRep"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRep"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkRng</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRng"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRng"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngChoice</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngChoice"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngDefine</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngDefine"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngElement</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngElement"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngEmpty</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngEmpty"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngGrammar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngGrammar"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngGroup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngGroup"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngInterleave</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngInterleave"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngNotAllowed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngNotAllowed"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngOneOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngOneOrMore"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngRef"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngRelaxError</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngRelaxError"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngStart</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngStart"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRngText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngText"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkRoot</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkRoot"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkSeq</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSeq"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkSeq"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkSNsName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkStar</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkStar"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkStar"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkStringExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkStringExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkSym</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSym"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkSym1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSym1"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkSymRng</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSymRng"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkText</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkText"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkTree</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AmkTree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AmkTree"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkTrueExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkTrueExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkUnit</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkUnit"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkUnit"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>MkVar</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkXsltAttribName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltAttribName"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mkXsltName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltName"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>mkZero</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkZero"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkZero"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Mod</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMod"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>msgToErr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AmsgToErr"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Mult</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMult"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>multi</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>mysqlDatatypeLib</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlDatatypeLib"
+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>mysqlNS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlNS"
+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NAME</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANAME"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Name</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>3 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>name</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NameClass</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NameClassChoice</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nameClassToString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AnameClassToString"
+>Text.XML.HXT.RelaxNG.PatternToString</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NamedRule</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nameOfAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfAttr"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nameOfElem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfElem"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NamePair</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NamePrefix</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>namePrefix</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>namePrefix'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>names</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Namespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANamespace"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>namespaceUri</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>namespaceUri'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nameT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NameTest</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANameTest"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NamRule</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NaN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NavTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#t%3ANavTree"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NavXmlTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NavXmlTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NCError</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ncName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>neg</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Neg0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANeg0"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NegInf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANegInf"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NEq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANEq"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>newAtom</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Atom.html#v%3AnewAtom"
+>Data.Atom</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NewName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>newXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnewXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nextState</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"
+>Control.Arrow.ArrowState</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nmtoken</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nmtokens</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nmtokenT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nodesTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AnodesTree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NodeTest</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>noDoubles</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>none</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>noOfChildren</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AnoOfChildren"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeAttributeValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AnormalizeAttributeValue"
+>Text.XML.HXT.DTDValidation.AttributeValueValidation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeBlanks</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeBlanks"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeForRelaxValidation</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AnormalizeForRelaxValidation"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeNL</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AnormalizeNL"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeNsUri</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AnormalizeURI"
+>Text.XML.HXT.RelaxNG.Utils</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>normalizeWhitespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NotAllowed</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>notAllowed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>notAllowed1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed1"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>notAllowed2</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed2"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>notAllowedN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowedN"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NOTATION</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANOTATION"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>notationDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AnotationDecl"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>notContaining</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NSAliasing</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NsName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NsNameExcept</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3ANT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nt2XPathTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Ant2XPathTree"
+>Text.XML.HXT.XPath.XPathToString</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NTest</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>NTree</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>Data.Tree.NTree.TypeDefs</A
+>, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"
+>Data.Tree.NTree.TypeDefs</A
+>, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ntree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3Antree"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>Data.Tree.NTree.TypeDefs</A
+>, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>nullable</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Anullable"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Anullable"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>3 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Anullable"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>nullXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnullXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>NumberExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANumberExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>numberLinesInXmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>numberValid</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AnumberValid"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>n_comment</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>n_node</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>n_processing_instruction</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XPath.XPathKeywords</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>n_text</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_text"
+>Text.XML.HXT.XPath.XPathKeywords</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>o'</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3Ao%27"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>OldName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>OneOrMore</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>oneOrMore</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AoneOrMore"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Op</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>optionIsSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoptionIsSet"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Or</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AOr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>orElse</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>outputOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoutputOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ParamList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ParamName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Parent</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AParent"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parentAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AparentAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseContentType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html#v%3AparseContentType"
+>Text.XML.HXT.Parser.ProtocolHandlerUtil</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseExName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AparseExName"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseHtmlContent</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlContent"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseHtmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlDoc"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseHtmlDocument</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseHtmlDocument"
+>Text.XML.HXT.Arrow.ProcessDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseHtmlTagSoup</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-TagSoup.html#v%3AparseHtmlTagSoup"
+>Text.XML.HXT.Parser.TagSoup</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlTagSoup"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseHtmlText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"
+>Text.XML.HXT.Parser.HtmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseMimeTypeTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AparseMimeTypeTable"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseNMToken</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseNTest</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AparseNTest"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseNumber"
+>Text.XML.HXT.XPath.XPathParser</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseRegex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html#v%3AparseRegex"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlAttrValue</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlAttrValue"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlContent</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlContent"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseXmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDoc"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlDocEncodingSpec</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDocEncodingSpec"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlDocument</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseXmlDocument"
+>Text.XML.HXT.Arrow.ProcessDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlDTDdecl</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdecl"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdecl"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlDTDdeclPart</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdeclPart"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdeclPart"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlDTDEntityValue</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDEntityValue"
+>Text.XML.HXT.Parser.XmlDTDParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDEntityValue"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlDTDPart</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDPart"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseXmlEncodingSpec</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlEntityEncodingSpec</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlEntityEncodingSpec"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>parseXmlGeneralEntityValue</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlGeneralEntityValue"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseXmlPart</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseXmlText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>parseXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseXPath"
+>Text.XML.HXT.XPath.XPathParser</A
+>, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>partitionA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>partitionEither</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3ApartitionEither"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Path</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>PathExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APathExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Pattern</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>patternToFormatedString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToFormatedString"
+>Text.XML.HXT.RelaxNG.PatternToString</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>patternToStringTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToStringTree"
+>Text.XML.HXT.RelaxNG.PatternToString</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>PENTITY</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APENTITY"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>percent</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3Apercent"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>PEREF</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APEREF"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>peReference</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3ApeReference"
+>Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>peReferenceT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>perform</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>PI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3API"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>pI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>pickleDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3ApickleDoc"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Plus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APlus"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Pos0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APos0"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>PosInf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APosInf"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Preceding</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APreceding"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>precedingAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>PrecedingSibling</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APrecedingSibling"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>precedingSiblingAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingSiblingAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>pred2XPathTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Apred2XPathTree"
+>Text.XML.HXT.XPath.XPathToString</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Prefix</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>preorderNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3ApreorderNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>prepareXSLTDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"
+>Text.XML.HXT.XSLT.Compilation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>preventEmptyElements</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3ApreventEmptyElements"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>printRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3AprintRE"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3AprintRE"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processBottomUp</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processBottomUpWhenNot</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processChildren</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html#v%3AprocessDTD"
+>Text.XML.HXT.Arrow.DTDProcessing</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processFromNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processGeneralEntities</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html#v%3AprocessGeneralEntities"
+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processTopDown</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processTopDownUntil</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processTopDownWithAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessTopDownWithAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processWithNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processWithNsEnvWithoutAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnvWithoutAttrl"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processXPathTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>processXPathTreesWithNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>prolog</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>propagateAndValidateNamespaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3ApropagateAndValidateNamespaces"
+>Text.XML.HXT.Arrow.ProcessDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>propagateNamespaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>PU</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Xml, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3APU"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>pubidLiteral</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>putXmlDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlDocument"
+>Text.XML.HXT.Arrow.DocumentOutput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>putXmlSource</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlSource"
+>Text.XML.HXT.Arrow.DocumentOutput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>putXmlTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlTree"
+>Text.XML.HXT.Arrow.DocumentOutput</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>qattr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>QName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>qName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>qualifiedName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>quoted</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
+>Text.XML.HXT.Arrow.ReadDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readForRelax</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AreadForRelax"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readFromDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromDocument"
+>Text.XML.HXT.Arrow.ReadDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readFromString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"
+>Text.XML.HXT.Arrow.ReadDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readMimeTypeTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AreadMimeTypeTable"
+>Text.XML.HXT.DOM.MimeTypes</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"
+>Text.XML.HXT.Arrow.ReadDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>readWDefault</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AreadWDefault"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>reference</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>referenceT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RefList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ARefList"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Regex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Rel</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ARel"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>relaxNamespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3ArelaxNamespace"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>relaxOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3ArelaxOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>relaxSchemaArrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaArrow"
+>Text.XML.HXT.RelaxNG.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaArrow"
+>Text.XML.HXT.RelaxNG.SchemaGrammar</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>relaxSchemaFile</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ArelaxSchemaFile"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>relaxSchemaGrammarFile</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ArelaxSchemaGrammarFile"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>relaxSchemaTree</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaTree"
+>Text.XML.HXT.RelaxNG.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaTree"
+>Text.XML.HXT.RelaxNG.SchemaGrammar</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>remAttrDec</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AremAttrDec"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>remDups</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AremDups"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeAllComment</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllComment"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeAllWhiteSpace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeComment</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveComment"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeDocWhiteSpace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>removeDoublicateDefs</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AremoveDoublicateDefs"
+>Text.XML.HXT.DTDValidation.DTDValidation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AremoveDoublicateDefs"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>removeEncodingSpec</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AremoveEncodingSpec"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AremoveOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeQAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveQAttr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>removeWhiteSpace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Rep</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>replaceChildren</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>returnA</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>revPreorderNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3ArevPreorderNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_ALT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ALT"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_alt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_alt"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_alt"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_DOT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_DOT"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_dot</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_dot"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_dot"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_OPT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_OPT"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_opt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_opt"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_opt"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_PLUS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_PLUS"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_plus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_plus"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_plus"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_REP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_REP"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_rep</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_rep"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_rep"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_SEQ</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SEQ"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_seq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_seq"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_seq"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_SYM</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SYM"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_sym</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_sym"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_sym"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_UNIT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_UNIT"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_unit</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_unit"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_unit"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>RE_ZERO</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ZERO"
+>Text.XML.HXT.DTDValidation.RE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>re_zero</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_zero"
+>Text.XML.HXT.DTDValidation.RE</A
+>, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_zero"
+>Text.XML.HXT.DTDValidation.XmlRE</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>right</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rightNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3ArightNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rnfA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowNF.html#v%3ArnfA"
+>Control.Arrow.ArrowNF</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_length</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_length"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_maxExclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxExclusive"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_maxInclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxInclusive"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_maxLength</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxLength"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_minExclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minExclusive"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_minInclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minInclusive"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rng_minLength</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minLength"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>root</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>rpar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runInLocalURIContext</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunInLocalURIContext"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runIOLA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOListArrow.html#v%3ArunIOLA"
+>Control.Arrow.IOListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runIOSLA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"
+>Control.Arrow.IOStateListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runKleisli</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runLA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"
+>Control.Arrow.ListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runSLA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"
+>Control.Arrow.StateListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runSt</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunSt"
+>Control.Arrow.IOStateListArrow</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>runX</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sattr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asattr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scAlt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAlt"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scAlts</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAlts"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scanRegexA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanRegexA"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scanXmlRegex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanXmlRegex"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAttr"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scAttrToXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscAttrToXml"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scCont</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscCont"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scConts</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscConts"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scContToXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscContToXml"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scDT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scDTxsd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDTxsd"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scElem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscElem"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scEmpty</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscEmpty"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scEnum</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscEnum"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scFixed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscFixed"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Schema</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Schemas</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchemas"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscList"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scList1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscList1"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scNmtoken</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNmtoken"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scNmtokens</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNmtokens"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scNull</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNull"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scOpt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscOpt"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scOption</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscOption"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scRep</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscRep"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scSeq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscSeq"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scSeqs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscSeqs"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscString"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scString1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscString1"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>scWrap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscWrap"
+>Text.XML.HXT.Arrow.Pickle.DTD</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sc_1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_1"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sc_dt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_dt"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sc_l</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_l"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sc_lb</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_lb"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sc_n</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_n"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sc_ub</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_ub"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sDDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>second</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Ased"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sedRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsedRE"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>SelectExpr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>selectOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AselectOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>selem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aselem"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Self</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ASelf"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>selfAxis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AselfAxis"
+>Text.XML.HXT.XPath.NavTree</A
+>, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>semi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>separator</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Seq</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Schema</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>seqA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetAttribute"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrl"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>setAttrName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetAttrName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setBaseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>setChildren</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AsetChildren"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setCmt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetCmt"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setDefaultBaseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDefaultBaseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setDocumentStatus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setDocumentStatusFromSystemState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setDTDAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetDTDAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setDTDAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetDTDAttrValue"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setElemAttrl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>setElemName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setErrMsgStatus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrMsgStatus"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setErrorMsgHandler</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrorMsgHandler"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setErrStatus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrStatus"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setLocalPart'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetLocalPart%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setMimeTypeTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetMimeTypeTable"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setMimeTypeTableFromFile</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetMimeTypeTableFromFile"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setNamePrefix'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetNamePrefix%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setNamespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetNamespace"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setNamespaceUri'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetNamespaceUri%27"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>setNode</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#v%3AsetNode"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParam"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setParamInt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamInt"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setParamList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamList"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setParamString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamString"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>setPiName</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetPiName"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetQName"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setRngName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngName"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setRngNameDiv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngNameDiv"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setRngNameRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngNameRef"
+>Text.XML.HXT.RelaxNG.BasicArrows</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setState</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"
+>Control.Arrow.ArrowState</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetText"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setTraceLevel</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetTraceLevel"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setUriMap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetUriMap"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setUserState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetUserState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>share</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Atom.html#v%3Ashare"
+>Data.Atom</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>showDatatype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AshowDatatype"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>showElemType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3AshowElemType"
+>Text.XML.HXT.DOM.ShowXml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>showOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AshowOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>showTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AshowTrees"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>single</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>singleChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>singleChars</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>singleCharsT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>singles</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>skipS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>skipS0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>SLA</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
+>Control.Arrow.StateListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"
+>Control.Arrow.StateListArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>SortK</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>SortKey</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sPace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sPace0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>spanA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>spi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aspi"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>split</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Asplit"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>splitExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>splitMatchByPrio</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitMatchByPrio"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>splitRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsplitRE"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>splitRegexA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitRegexA"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>splitXmlRegex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitXmlRegex"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>sqattr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asqattr"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>St</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.Arrow.Pickle.Xml</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Step</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AStep"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>strictA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowNF.html#v%3AstrictA"
+>Control.Arrow.ArrowNF</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringEscapeXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>StringExpr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringProtocol</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AstringProtocol"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringToHexString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringToInt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringToUpper</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringTrim</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringValid</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValid"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stringValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AstringValue"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stripDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripDocument"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Strips</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stripSpaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripSpaces"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>stripStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripStylesheet"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>substEntityRefs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstEntityRefs"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>substHtmlEntityRefs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>substXmlEntityRefs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>subtreeNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AsubtreeNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>swap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Aswap"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>systemLiteral</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>tagA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplApply</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplApplyImports</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Template</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplAttribute</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplCall</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplChoose</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplComment</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplComposite</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplCopy</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplCopyOf</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplElement</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplForEach</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplMessage</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplProcInstr</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplText</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplValueOf</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TemplVariable</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>TestExpr</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Text</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>textDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>textEscapeXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>text_html</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>text_xml</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>text_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>thePicklerDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AthePicklerDTD"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>theSchema</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AtheSchema"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AtheSchema"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>this</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3Athis"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>thisNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>tokenize</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Atokenize"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>tokenize'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Atokenize%27"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>tokenizeRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>tokenizeRE'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE%27"
+>Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>toMaybe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtoMaybe"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>toNsEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AtoNsEnv"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>toXPathTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AtoXPathTree"
+>Text.XML.HXT.XPath.XPathToString</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>toXValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AtoXValue"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>trace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Atrace"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceDoc"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceMsg</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceMsg"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceSource</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceSource"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceString"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceTree"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>traceValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceValue"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transfAllCdata</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCdata"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transfAllCharRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCharRef"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transfCdata</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCdata"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transfCharRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCharRef"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferDefaultURI</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferEncoding</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferMessage</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferMimeType</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferPrefix</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferProtocol</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferStatus</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferURI</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transferVersion</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>transform</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-DocTransformation.html#v%3Atransform"
+>Text.XML.HXT.DTDValidation.DocTransformation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Atransform"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>transformDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AtransformDoc"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Tree</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Tree-Class.html#t%3ATree"
+>Data.Tree.Class</A
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
+>Control.Arrow.ArrowTree</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>treeRepOfXmlDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>tryFetchAttribute</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AtryFetchAttribute"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>txt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Atxt"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>TypeTest</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ATypeTest"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>t_root</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_root"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>t_xml</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ucs2</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ucs2BigEndianToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ucs2LittleEndianToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2LittleEndianToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>ucs2ToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2ToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Unary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnary"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>uncurry3</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry3"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>uncurry4</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry4"
+>Text.XML.HXT.DOM.Util</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Unicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeCharToUtf8</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeCharToUtf8"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeRemoveNoneAscii</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeRemoveNoneLatin1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeString</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeToLatin1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeToUtf8</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToUtf8"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unicodeToXmlEntity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Union</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnion"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unionExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunionExpr"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>uniqueNamespaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespaces"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>uniqueNamespacesFromDeclAndQNames</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespacesFromDeclAndQNames"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>universalName</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>universalUri</TD
+><TD CLASS="indexlinks"
+><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unlistA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unpickleDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AunpickleDoc"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AunpickleDoc"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>unsetParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AunsetParam"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>unzipTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunzipTree"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>upNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-NavTree.html#v%3AupNT"
+>Data.NavTree</A
+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Uri</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
+>Text.XML.HXT.RelaxNG.DataTypes</A
+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>uriMap2Attrs</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AuriMap2Attrs"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>UriMapping</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
+>Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>usAscii</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>UsedAttribSets</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>UString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>UStringWithErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf16</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf16be</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf16beToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf16le</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf16leToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf8</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>UTF8Char</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8Char"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>UTF8String</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf8ToUnicode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>utf8ToUnicodeEmbedErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicodeEmbedErrors"
+>Text.XML.HXT.DOM.Unicode</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>validate</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Avalidate"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>validateDoc</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-DocValidation.html#v%3AvalidateDoc"
+>Text.XML.HXT.DTDValidation.DocValidation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDoc"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>3 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AvalidateDoc"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AvalidateDocument"
+>Text.XML.HXT.Arrow.ProcessDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateDocumentWithRelax</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelax"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateDocumentWithRelaxSchema</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelaxSchema"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateDocWithRelax</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateDocWithRelax"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>validateDTD</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AvalidateDTD"
+>Text.XML.HXT.DTDValidation.DTDValidation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDTD"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateIds</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-IdValidation.html#v%3AvalidateIds"
+>Text.XML.HXT.DTDValidation.IdValidation</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateNamespaces</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"
+>Text.XML.HXT.Arrow.Namespace</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateRelax</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateSchema</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateSchemaWithSpezification</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchemaWithSpezification"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateWithoutSpezification</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithoutSpezification"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateWithRelaxAndHandleErrors</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateWithRelaxAndHandleErrors"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateWithSpezification</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>validateXMLDoc</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateXMLDoc"
+>Text.XML.HXT.RelaxNG.Validation</A
+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Value</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>valueOf</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOf"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>valueOfDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOfDTD"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>varEnv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AvarEnv"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>VarExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AVarExpr"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Variable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>VarName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>VarTab</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>versionInfo</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>versionNum</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>versionOptions</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AversionOptions"
+>Text.XML.HXT.DOM.XmlOptions</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_0</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_any</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_children</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_choice</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_empty</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_mixed</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_no</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_null</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_option</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_pcdata</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_plus</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_seq</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_star</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>v_yes</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>w3cDatatypeLib</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Aw3cDatatypeLib"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>w3cNS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Aw3cNS"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>warn</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Awarn"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>When</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"
+>Text.XML.HXT.XSLT.CompiledStylesheet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>when</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>whenNot</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>whenNotP</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>whenP</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"
+>Control.Arrow.ArrowIf</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>WhenPart</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.CompiledStylesheet</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>withDefault</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"
+>Control.Arrow.ArrowList</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>withExtendedUserState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithExtendedUserState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>withOtherUserState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithOtherUserState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>withTraceLevel</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithTraceLevel"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>writeDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"
+>Text.XML.HXT.Arrow.WriteDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>writeDocumentToString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocumentToString"
+>Text.XML.HXT.Arrow.WriteDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXAttr"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xboolean</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axboolean"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XCdata</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCdata"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XCharRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCharRef"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XCmt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCmt"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXDTD"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XEntityRef</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXEntityRef"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XError</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXError"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XFct</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xhtmlEntities</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html#v%3AxhtmlEntities"
+>Text.XML.HXT.Parser.XhtmlEntities</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>XIOState</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XIOSys</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOSys"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XIOSysState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_attrList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_attrList"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_baseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_baseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_defaultBaseURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_defaultBaseURI"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_errorModule</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorModule"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_errorMsgCollect</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgCollect"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_errorMsgHandler</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgHandler"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_errorMsgList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgList"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_errorStatus</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorStatus"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_mimeTypes</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_mimeTypes"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_sysState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_sysState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_trace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_trace"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xio_userState</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_userState"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlArrow</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlArrowS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrowS"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlChar"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xMLDecl</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xMLDecl'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl%27"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlEntities</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlEntities.html#v%3AxmlEntities"
+>Text.XML.HXT.Parser.XmlEntities</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlLetter</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlLetter"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlNameChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameChar"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlNamespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlNamespace"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlNamespaceXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlNamespaceXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlNameStartChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameStartChar"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlNCNameChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameChar"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlNCNameStartChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameStartChar"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
+>Text.XML.HXT.DOM.XmlNode</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlnsNamespace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlnsNamespace"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlnsNamespaceXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlnsNamespaceXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlnsQN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlnsQN"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlnsXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlnsXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlPickler</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlRegex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlSpace</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxmlSpace"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlSpaceChar</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlSpaceChar"
+>Text.XML.HXT.Parser.XmlCharParser</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XmlTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlTreeToPatternFormatedString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternFormatedString"
+>Text.XML.HXT.RelaxNG.PatternToString</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlTreeToPatternString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternString"
+>Text.XML.HXT.RelaxNG.PatternToString</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlTreeToPatternStringTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternStringTree"
+>Text.XML.HXT.RelaxNG.PatternToString</A
+>, Text.XML.HXT.RelaxNG</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xmlXName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XNS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXNS"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xnumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axnumber"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xp4Tuple</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp4Tuple"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp4Tuple"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xp5Tuple</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp5Tuple"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp5Tuple"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xp6Tuple</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp6Tuple"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp6Tuple"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpAddFixedAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAddFixedAttr"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAddFixedAttr"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpAlt</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAlt"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAlt"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPathAdd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathAdd"
+>Text.XML.HXT.XPath.XPathArithmetic</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPathDiv</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathDiv"
+>Text.XML.HXT.XPath.XPathArithmetic</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPathFilter</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPathMod</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMod"
+>Text.XML.HXT.XPath.XPathArithmetic</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPathMulti</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMulti"
+>Text.XML.HXT.XPath.XPathArithmetic</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPathNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPathParams</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"
+>Text.XML.HXT.XSLT.Application</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPathUnary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathUnary"
+>Text.XML.HXT.XPath.XPathArithmetic</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPathValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpAttr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttr"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttr"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpAttrFixed</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrFixed"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrFixed"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpAttrImplied</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrImplied"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrImplied"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpAttrQN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrQN"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpChoice</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpChoice"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpChoice"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPCommentNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPCommentNode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpCondSeq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpCondSeq"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpCondSeq"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpDefault</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpDefault"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpDefault"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpElem</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElem"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElem"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpElemQN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElemQN"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpElemWithAttrValue</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElemWithAttrValue"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElemWithAttrValue"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPi</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXPi"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpickle</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axpickle"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axpickle"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpickleDocument</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleDocument"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpickleDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleDTD"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpickleVal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleVal"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpickleWriteDTD</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleWriteDTD"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpLift</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpLift"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpLift"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpLiftMaybe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpLiftMaybe"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpLiftMaybe"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpList"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpList"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpList1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpList1"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpList1"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpMap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpMap"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpMap"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPNode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpOption</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpOption"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpOption"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpPair</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPPINode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPPINode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpPrim</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPrim"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPrim"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpSeq</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpSeq"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpSeq"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpText0</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpText0DT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0DT"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0DT"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpTextDT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPTextNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPTextNode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpTree</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTree"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTree"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTrees"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTrees"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpTriple</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpUnit</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpUnit"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpUnit"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPValue2NodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AxPValue2NodeSet"
+>Text.XML.HXT.XPath.XPathToNodeSet</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPValue2String</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2String"
+>Text.XML.HXT.XPath.XPathToString</A
+>, Text.XML.HXT.XPath</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xPValue2XmlTrees</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2XmlTrees"
+>Text.XML.HXT.XPath.XPathToString</A
+>, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPVBool</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVBool"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPVError</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVError"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPVNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNode"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPVNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XPVString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVString"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpWrap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpWrapMaybe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrapMaybe"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrapMaybe"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpXmlText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpXmlText"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpXmlText"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xpZero</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpZero"
+>Text.XML.HXT.Arrow.Pickle.Xml</A
+>, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpZero"
+>Text.XML.HXT.Arrow.Pickle</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>xread</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
+>Text.XML.HXT.Parser.XmlParsec</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"
+>Text.XML.HXT.Arrow.ReadDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsdParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AxsdParam"
+>Text.XML.HXT.Arrow.Pickle.Schema</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_anyURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_anyURI"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_enumeration</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_enumeration"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_length</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_length"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_maxLength</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxLength"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_minLength</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minLength"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_NCName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NCName"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_pattern</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_pattern"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsd_QName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_QName"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>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 CLASS="indexrow"
+><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 CLASS="indexrow"
+><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
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>xshow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"
+>Text.XML.HXT.DOM.ShowXml</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"
+>Text.XML.HXT.Arrow.XmlArrow</A
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xshowEscapeXml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AxshowEscapeXml"
+>Text.XML.HXT.Arrow.Edit</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltApplyImports</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltApplyStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheet"
+>Text.XML.HXT.XSLT.XsltArrows</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltApplyStylesheetFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheetFromURI"
+>Text.XML.HXT.XSLT.XsltArrows</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltApplyTemplates</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltAttribute</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltAttributeSet</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltCallTemplate</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltChoose</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltComment</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltCompileStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"
+>Text.XML.HXT.XSLT.XsltArrows</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltCompileStylesheetFromURI</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"
+>Text.XML.HXT.XSLT.XsltArrows</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltCopy</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltCopyOf</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltDataType</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltElement</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltElements</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltExlcudeResultPrefixes</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltExlcudeResultPrefixesLRE</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltExtensionElementPrefixes</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltExtensionElementPrefixesLRE</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltForEach</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltHRef</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltIf</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltImport</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltInclude</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltMatch</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltMessage</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltMode</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltNamespace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltNamespaceAlias</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltOrder</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltOtherwise</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltParam</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltPrefix</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPrefix"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltPreserveSpace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltPriority</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltProcInstr</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltResultPrefix</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltSelect</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSelect"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltSort</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltStripSpace</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltStylesheet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheet"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltStylesheetPrefix</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltTemplate</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltTerminate</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltTest</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltText</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltTransform</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltUri</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUri"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltUseAttributeSets</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltUseAttributeSetsLRE</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltValueOf</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltVariable</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltVersion</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltVersionLRE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersionLRE"
+>Text.XML.HXT.XSLT.Names</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltWhen</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>xsltWithParam</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.XSLT.Names</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XStep</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
+>Text.XML.HXT.XPath.XPathDataTypes</A
+>, Text.XML.HXT.XSLT.Common</TD
+></TR
+><TR CLASS="indexrow"
+><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 CLASS="indexrow"
+><TD CLASS="indexentry"
+>xstring</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axstring"
+>Text.XML.HXT.XPath.XPathFct</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XTag</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXTag"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XText</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXText"
+>Text.XML.HXT.DOM.TypeDefs</A
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/hxt.haddock b/doc/hdoc/hxt.haddock
Binary files a/doc/hdoc/hxt.haddock and b/doc/hdoc/hxt.haddock differ
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
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TITLE
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</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"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -34,7 +34,7 @@
 ></TR
 ><TR
 ><TD CLASS="section1"
->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD
+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
@@ -291,16 +291,6 @@
 ><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 44em"
-><A HREF="Data-Tree-NTree-Filter.html"
->Data.Tree.NTree.Filter</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 44em"
 ><A HREF="Data-Tree-NTree-TypeDefs.html"
 >Data.Tree.NTree.TypeDefs</A
 ></TD
@@ -632,16 +622,6 @@
 ></TR
 ><TR
 ><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
@@ -724,16 +704,6 @@
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html"
 >Text.XML.HXT.DOM.XmlOptions</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"
->Text.XML.HXT.DOM.XmlTreeTypes</A
 ></TD
 ><TD
 ></TD
diff --git a/doc/hdoc/src/Control-Arrow-ArrowNF.html b/doc/hdoc/src/Control-Arrow-ArrowNF.html
--- a/doc/hdoc/src/Control-Arrow-ArrowNF.html
+++ b/doc/hdoc/src/Control-Arrow-ArrowNF.html
@@ -42,5 +42,7 @@
 <a name="line-34"></a><a name="ArrowNF"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowNF</span> <span class='varid'>a</span> <span class='keyword'>where</span>
 <a name="line-35"></a>    <span class='varid'>rnfA</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
 <a name="line-36"></a>    <span class='varid'>rnfA</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>strictA</span>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Data-Tree-NTree-Filter.html b/doc/hdoc/src/Data-Tree-NTree-Filter.html
deleted file mode 100644
--- a/doc/hdoc/src/Data-Tree-NTree-Filter.html
+++ /dev/null
@@ -1,923 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
-<title>Haskell Code by HsColour</title>
-<link type='text/css' rel='stylesheet' href='hscolour.css' />
-</head>
-<body>
-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-2"></a>
-<a name="line-3"></a><span class='comment'>{- |
-<a name="line-4"></a>   Module     : Data.Tree.NTree.Filter
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
-<a name="line-6"></a>   License    : MIT
-<a name="line-7"></a>
-<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
-<a name="line-9"></a>   Stability  : experimental
-<a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: Filter.hs,v 1.6 2006/11/12 14:52:59 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>Filter for n-ary tree structure with filter combinators
-<a name="line-14"></a>copied and modified from HxXml (&lt;<a href="http://www.cs.york.ac.uk/fp/HaXml/">http://www.cs.york.ac.uk/fp/HaXml/</a>&gt;)
-<a name="line-15"></a>
-<a name="line-16"></a>Similar but more flexible functions for tree processing are defined in the
-<a name="line-17"></a>arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".
-<a name="line-18"></a>For new applications, especially for XML processing, it's recommended to use the arrow interface
-<a name="line-19"></a>"Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"
-<a name="line-20"></a>
-<a name="line-21"></a>-}</span>
-<a name="line-22"></a>
-<a name="line-23"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>Filter</span>
-<a name="line-26"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-27"></a>    <span class='layout'>,</span> <span class='conid'>TFilter</span>
-<a name="line-28"></a>    <span class='layout'>,</span> <span class='conid'>TSFilter</span>
-<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>satisfies</span>
-<a name="line-30"></a>
-<a name="line-31"></a>    <span class='comment'>-- * Filter</span>
-<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>none</span>		<span class='comment'>-- simple filter</span>
-<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>this</span>
-<a name="line-34"></a>
-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>isOf</span>
-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>isOfNode</span>		<span class='comment'>-- predicate filter</span>
-<a name="line-37"></a>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>mkNTree</span>		<span class='comment'>-- contructor filter</span>
-<a name="line-39"></a>
-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>replaceNode</span>	<span class='comment'>-- simple editing</span>
-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>replaceChildren</span>
-<a name="line-42"></a>
-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>modifyNode</span>
-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>modifyNode0</span>
-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>modifyChildren</span>
-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>substChildren</span>
-<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>processChildren</span>	<span class='comment'>-- filter combinators</span>
-<a name="line-48"></a>
-<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>o</span>
-<a name="line-50"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span>
-<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>seqF</span>
-<a name="line-52"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>..&gt;</span><span class='layout'>)</span>
-<a name="line-53"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>+++</span><span class='layout'>)</span>
-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>cat</span>
-<a name="line-55"></a>
-<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>orElse</span>		<span class='comment'>-- choices</span>
-<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>iff</span>		<span class='comment'>-- if then else filter</span>
-<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>choice</span>
-<a name="line-59"></a>    <span class='layout'>,</span> <span class='conid'>IfThen</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>when</span>
-<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>whenNot</span>
-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>guards</span>
-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>neg</span>		<span class='comment'>-- negation</span>
-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>containing</span>	<span class='comment'>-- previous: with, but with is keyword in haskell extensions</span>
-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>notContaining</span>	<span class='comment'>-- previous: without</span>
-<a name="line-66"></a>
-<a name="line-67"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>/&gt;</span><span class='layout'>)</span>		<span class='comment'>-- selectors</span>
-<a name="line-68"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;/</span><span class='layout'>)</span>
-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>deep</span>		<span class='comment'>-- recursive search</span>
-<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>deepest</span>
-<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>multi</span>
-<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUp</span>	<span class='comment'>-- recursive editing</span>
-<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUpIfNot</span>
-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>processTopDown</span>
-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>processTopDownUntil</span>
-<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>insertChildrenAt</span>
-<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>insertChildrenAfter</span>
-<a name="line-78"></a>
-<a name="line-79"></a>      <span class='comment'>-- * Monadic Filter</span>
-<a name="line-80"></a>    <span class='layout'>,</span> <span class='varid'>thisM</span>		<span class='comment'>-- monadic filter</span>
-<a name="line-81"></a>    <span class='layout'>,</span> <span class='varid'>noneM</span>
-<a name="line-82"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&gt;&gt;</span><span class='layout'>)</span>		<span class='comment'>-- monadic composition</span>
-<a name="line-83"></a>    <span class='layout'>,</span> <span class='varid'>seqM</span>		<span class='comment'>-- generalisation of .&gt;&gt;</span>
-<a name="line-84"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>+++&gt;&gt;</span><span class='layout'>)</span>		<span class='comment'>-- monadic parallel combination, monadic +++</span>
-<a name="line-85"></a>    <span class='layout'>,</span> <span class='varid'>catM</span>		<span class='comment'>-- monadic form of cat</span>
-<a name="line-86"></a>    <span class='layout'>,</span> <span class='varid'>ifM</span>		<span class='comment'>-- monadic if then else</span>
-<a name="line-87"></a>    <span class='layout'>,</span> <span class='varid'>choiceM</span>		<span class='comment'>-- monadic choice</span>
-<a name="line-88"></a>    <span class='layout'>,</span> <span class='varid'>whenM</span>		<span class='comment'>-- special monadic ifs</span>
-<a name="line-89"></a>    <span class='layout'>,</span> <span class='varid'>whenNotM</span>
-<a name="line-90"></a>    <span class='layout'>,</span> <span class='varid'>guardsM</span>
-<a name="line-91"></a>    <span class='layout'>,</span> <span class='varid'>containingM</span>
-<a name="line-92"></a>    <span class='layout'>,</span> <span class='varid'>processChildrenM</span>	<span class='comment'>-- monadic versions of recursive editing</span>
-<a name="line-93"></a>    <span class='layout'>,</span> <span class='varid'>processTopDownM</span>
-<a name="line-94"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUpM</span>
-<a name="line-95"></a>    <span class='layout'>,</span> <span class='varid'>liftMf</span>		<span class='comment'>-- lift a normal filter to a monadic filter</span>
-<a name="line-96"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>$$</span><span class='layout'>)</span>		<span class='comment'>-- apply a filter to a list</span>
-<a name="line-97"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>$$&lt;</span><span class='layout'>)</span>		<span class='comment'>-- apply a monad filter to a list</span>
-<a name="line-98"></a>    <span class='layout'>,</span> <span class='varid'>performAction</span>	<span class='comment'>-- run a command within a filter</span>
-<a name="line-99"></a>    <span class='layout'>)</span>
-<a name="line-100"></a>
-<a name="line-101"></a><span class='keyword'>where</span>
-<a name="line-102"></a>
-<a name="line-103"></a>
-<a name="line-104"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-105"></a>
-<a name="line-106"></a><span class='keyword'>infixl</span> <span class='num'>6</span> <span class='varop'>`containing`</span><span class='layout'>,</span> <span class='varop'>`notContaining`</span><span class='layout'>,</span> <span class='varop'>`containingM`</span>
-<a name="line-107"></a><span class='keyword'>infixr</span> <span class='num'>5</span> <span class='varop'>`o`</span><span class='layout'>,</span> <span class='varop'>+++</span><span class='layout'>,</span> <span class='varop'>+++&gt;&gt;</span>
-<a name="line-108"></a><span class='keyword'>infixl</span> <span class='num'>5</span> <span class='varop'>/&gt;</span><span class='layout'>,</span> <span class='varop'>&lt;/</span><span class='layout'>,</span> <span class='varop'>`orElse`</span><span class='layout'>,</span> <span class='varop'>.&gt;</span><span class='layout'>,</span> <span class='varop'>..&gt;</span><span class='layout'>,</span> <span class='varop'>.&gt;&gt;</span>
-<a name="line-109"></a><span class='keyword'>infixr</span> <span class='num'>4</span> <span class='varop'>`when`</span><span class='layout'>,</span> <span class='varop'>`whenNot`</span><span class='layout'>,</span> <span class='varop'>`guards`</span><span class='layout'>,</span> <span class='varop'>`whenM`</span><span class='layout'>,</span> <span class='varop'>`whenNotM`</span><span class='layout'>,</span> <span class='varop'>`guardsM`</span>
-<a name="line-110"></a><span class='keyword'>infixr</span> <span class='num'>3</span> <span class='conop'>:-&gt;</span>
-<a name="line-111"></a><span class='keyword'>infixr</span> <span class='num'>0</span> <span class='varop'>$$</span><span class='layout'>,</span> <span class='varop'>$$&lt;</span>
-<a name="line-112"></a>
-<a name="line-113"></a><span class='comment'>-- |</span>
-<a name="line-114"></a><span class='comment'>-- tree filter type: a function mapping a tree onto a list of trees</span>
-<a name="line-115"></a><span class='comment'>--</span>
-<a name="line-116"></a><span class='comment'>-- filter can be used in various ways, as predicates, selectors, transformers, ...</span>
-<a name="line-117"></a>
-<a name="line-118"></a><a name="TFilter"></a><span class='keyword'>type</span> <span class='conid'>TFilter</span>  <span class='varid'>node</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span>  <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTrees</span> <span class='varid'>node</span>
-<a name="line-119"></a>
-<a name="line-120"></a><span class='comment'>-- |</span>
-<a name="line-121"></a><span class='comment'>-- a filter for sequences</span>
-<a name="line-122"></a>
-<a name="line-123"></a><a name="TSFilter"></a><span class='keyword'>type</span> <span class='conid'>TSFilter</span> <span class='varid'>node</span>	<span class='keyglyph'>=</span> <span class='conid'>NTrees</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTrees</span> <span class='varid'>node</span>
-<a name="line-124"></a>
-<a name="line-125"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-126"></a>
-<a name="line-127"></a><span class='comment'>-- |</span>
-<a name="line-128"></a><span class='comment'>-- satisfies converts a result of a predicate filter into a boolean</span>
-<a name="line-129"></a><span class='comment'>--</span>
-<a name="line-130"></a><span class='comment'>-- is a shortcut for not . null</span>
-<a name="line-131"></a><span class='comment'>--</span>
-<a name="line-132"></a><span class='comment'>-- typical use in guards or ifs: @if (satisfies f) t then ... else ... @</span>
-<a name="line-133"></a><span class='comment'>--</span>
-<a name="line-134"></a><span class='comment'>--    * 1.parameter f :  the predicate filter</span>
-<a name="line-135"></a><span class='comment'>--</span>
-<a name="line-136"></a><span class='comment'>--    - 2.parameter t :  the tree to be tested</span>
-<a name="line-137"></a><span class='comment'>--</span>
-<a name="line-138"></a><span class='comment'>--    - returns : @b = not (null (f t))@</span>
-<a name="line-139"></a>
-<a name="line-140"></a><a name="satisfies"></a><span class='definition'>satisfies</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-141"></a><span class='definition'>satisfies</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>f</span>
-<a name="line-142"></a>
-<a name="line-143"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-144"></a><span class='comment'>--</span>
-<a name="line-145"></a><span class='comment'>-- simple filter</span>
-<a name="line-146"></a>
-<a name="line-147"></a><span class='comment'>-- |</span>
-<a name="line-148"></a><span class='comment'>-- the null filter, returns the empty list</span>
-<a name="line-149"></a>
-<a name="line-150"></a><a name="none"></a><span class='definition'>none</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-151"></a><span class='definition'>none</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-152"></a>
-<a name="line-153"></a><span class='comment'>-- |</span>
-<a name="line-154"></a><span class='comment'>-- the unit filter, returns the single element list containing the argument</span>
-<a name="line-155"></a>
-<a name="line-156"></a><a name="this"></a><span class='definition'>this</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-157"></a><span class='definition'>this</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>
-<a name="line-158"></a>
-<a name="line-159"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-160"></a><span class='comment'>--</span>
-<a name="line-161"></a><span class='comment'>-- selecting filter</span>
-<a name="line-162"></a>
-<a name="line-163"></a><span class='comment'>-- |</span>
-<a name="line-164"></a><span class='comment'>-- conversion from predicate function to filter</span>
-<a name="line-165"></a><span class='comment'>--</span>
-<a name="line-166"></a><span class='comment'>--    * 1.parameter p :  the predicate for testing the tree</span>
-<a name="line-167"></a><span class='comment'>--</span>
-<a name="line-168"></a><span class='comment'>--    - returns : 'this' or 'none' depending on the predicate</span>
-<a name="line-169"></a>
-<a name="line-170"></a><a name="isOf"></a><span class='definition'>isOf</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-171"></a><span class='definition'>isOf</span> <span class='varid'>p</span> <span class='varid'>t</span>
-<a name="line-172"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>t</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span>
-<a name="line-173"></a>
-<a name="line-174"></a><span class='comment'>-- |</span>
-<a name="line-175"></a><span class='comment'>-- select filter, selects trees with node values with a specific property</span>
-<a name="line-176"></a><span class='comment'>--</span>
-<a name="line-177"></a><span class='comment'>--    * 1.parameter p :  the predicate for testing the node value</span>
-<a name="line-178"></a><span class='comment'>--</span>
-<a name="line-179"></a><span class='comment'>--    - returns : @[]@ or @[t]@ depending on @p t@</span>
-<a name="line-180"></a><span class='comment'>--</span>
-<a name="line-181"></a><span class='comment'>-- a special case of 'isOf' filter</span>
-<a name="line-182"></a>
-<a name="line-183"></a><a name="isOfNode"></a><span class='definition'>isOfNode</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-184"></a><span class='definition'>isOfNode</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>isOf</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>getNode</span><span class='layout'>)</span>
-<a name="line-185"></a>
-<a name="line-186"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-187"></a><span class='comment'>--</span>
-<a name="line-188"></a><span class='comment'>-- simple editing filters</span>
-<a name="line-189"></a>
-<a name="line-190"></a><span class='comment'>-- |</span>
-<a name="line-191"></a><span class='comment'>-- filter for substituting an arbitray tree by a constant</span>
-<a name="line-192"></a><span class='comment'>--</span>
-<a name="line-193"></a><span class='comment'>--    * 1.parameter t :  the result tree, the input tree is ignored</span>
-<a name="line-194"></a><span class='comment'>--</span>
-<a name="line-195"></a><span class='comment'>--    - returns : the filter</span>
-<a name="line-196"></a>
-<a name="line-197"></a><a name="mkNTree"></a><span class='definition'>mkNTree</span>		<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-198"></a><span class='definition'>mkNTree</span> <span class='varid'>t</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>
-<a name="line-199"></a>
-<a name="line-200"></a><span class='comment'>-- |</span>
-<a name="line-201"></a><span class='comment'>-- filter for replacing the node</span>
-<a name="line-202"></a><span class='comment'>--</span>
-<a name="line-203"></a><span class='comment'>--    * 1.parameter n :  the new node</span>
-<a name="line-204"></a><span class='comment'>--</span>
-<a name="line-205"></a><span class='comment'>--    - returns : the editing filter</span>
-<a name="line-206"></a>
-<a name="line-207"></a><a name="replaceNode"></a><span class='definition'>replaceNode</span>	<span class='keyglyph'>::</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-208"></a><span class='definition'>replaceNode</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-209"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>
-<a name="line-210"></a>
-<a name="line-211"></a><span class='comment'>-- |</span>
-<a name="line-212"></a><span class='comment'>-- filter for replacing the children</span>
-<a name="line-213"></a><span class='comment'>--</span>
-<a name="line-214"></a><span class='comment'>--    * 1.parameter cs :  cs the list of children</span>
-<a name="line-215"></a><span class='comment'>--</span>
-<a name="line-216"></a><span class='comment'>--    - returns : the filter</span>
-<a name="line-217"></a>
-<a name="line-218"></a><a name="replaceChildren"></a><span class='definition'>replaceChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>NTrees</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-219"></a><span class='definition'>replaceChildren</span> <span class='varid'>cs</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-220"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>
-<a name="line-221"></a>
-<a name="line-222"></a><a name="modifyNode"></a><span class='definition'>modifyNode</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-223"></a><span class='definition'>modifyNode</span> <span class='varid'>tf</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n'</span> <span class='varid'>cs</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tf</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-225"></a>
-<a name="line-226"></a><span class='comment'>-- |</span>
-<a name="line-227"></a><span class='comment'>-- filter for editing the node</span>
-<a name="line-228"></a><span class='comment'>--</span>
-<a name="line-229"></a><span class='comment'>--    * 1.parameter nf :  the XNode editing funtion</span>
-<a name="line-230"></a><span class='comment'>--</span>
-<a name="line-231"></a><span class='comment'>--    - returns : the filter</span>
-<a name="line-232"></a>
-<a name="line-233"></a><a name="modifyNode0"></a><span class='definition'>modifyNode0</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-234"></a><span class='definition'>modifyNode0</span> <span class='varid'>tf</span>	<span class='keyglyph'>=</span> <span class='varid'>modifyNode</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>tf</span><span class='layout'>)</span>
-<a name="line-235"></a>
-<a name="line-236"></a><span class='comment'>-- |</span>
-<a name="line-237"></a><span class='comment'>-- filter for editing the children</span>
-<a name="line-238"></a><span class='comment'>--</span>
-<a name="line-239"></a><span class='comment'>-- all children are processed with a filter mapping lists to lists,</span>
-<a name="line-240"></a><span class='comment'>-- this enables not only elementwise editing by lifting a normal</span>
-<a name="line-241"></a><span class='comment'>-- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation</span>
-<a name="line-242"></a><span class='comment'>-- of the order of the elements, e.g. "reverse" is an appropriate childen</span>
-<a name="line-243"></a><span class='comment'>-- editing function.</span>
-<a name="line-244"></a><span class='comment'>--</span>
-<a name="line-245"></a><span class='comment'>--    * 1.parameter csf :  the children editing function</span>
-<a name="line-246"></a><span class='comment'>--</span>
-<a name="line-247"></a><span class='comment'>--    - returns : the filter</span>
-<a name="line-248"></a><span class='comment'>--</span>
-<a name="line-249"></a><span class='comment'>-- see also : 'processChildren'</span>
-<a name="line-250"></a>
-<a name="line-251"></a><a name="modifyChildren"></a><span class='definition'>modifyChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>TSFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-252"></a><span class='definition'>modifyChildren</span> <span class='varid'>f</span> <span class='comment'>-- (NTree n cs)</span>
-<a name="line-253"></a>    <span class='comment'>-- = [NTree n (f cs)]</span>
-<a name="line-254"></a>    <span class='keyglyph'>=</span> <span class='varid'>substChildren</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
-<a name="line-255"></a>
-<a name="line-256"></a><span class='comment'>-- |</span>
-<a name="line-257"></a><span class='comment'>-- filter for substituting the children of a tree by</span>
-<a name="line-258"></a><span class='comment'>-- a new list of childen computed by applying a filter to the input tree.</span>
-<a name="line-259"></a><span class='comment'>-- 'modifyChildren' can be expressed by 'substChildren':</span>
-<a name="line-260"></a><span class='comment'>-- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@</span>
-<a name="line-261"></a>
-<a name="line-262"></a><a name="substChildren"></a><span class='definition'>substChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-263"></a><span class='definition'>substChildren</span> <span class='varid'>f</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='sel'>_cs</span><span class='layout'>)</span>
-<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>t</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-265"></a>
-<a name="line-266"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-267"></a><span class='comment'>--</span>
-<a name="line-268"></a><span class='comment'>-- combinators (copied from HaXml)</span>
-<a name="line-269"></a><span class='comment'>--</span>
-<a name="line-270"></a>
-<a name="line-271"></a><span class='comment'>-- |</span>
-<a name="line-272"></a><span class='comment'>-- sequential composition of filters, usually written in infix notation f2 `o` f1.</span>
-<a name="line-273"></a><span class='comment'>--</span>
-<a name="line-274"></a><span class='comment'>-- for predicate filter the logical AND</span>
-<a name="line-275"></a><span class='comment'>--</span>
-<a name="line-276"></a><span class='comment'>--    * 1.parameter f2 :  the 2. filter</span>
-<a name="line-277"></a><span class='comment'>--</span>
-<a name="line-278"></a><span class='comment'>--    - 2.parameter f1 :  the 1. filter</span>
-<a name="line-279"></a><span class='comment'>--</span>
-<a name="line-280"></a><span class='comment'>--    - returns : the fiter applying first f1 to n and then f2 to the result (like function composition)</span>
-<a name="line-281"></a>
-<a name="line-282"></a><a name="o"></a><span class='definition'>o</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-283"></a><a name="o"></a><span class='definition'>f</span> <span class='varop'>`o`</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>g</span>
-<a name="line-284"></a>
-<a name="line-285"></a><span class='comment'>-- |</span>
-<a name="line-286"></a><span class='comment'>-- pronounced \"followed by\", defined as: @f .&gt; g = g \`o\` f@.</span>
-<a name="line-287"></a><span class='comment'>--</span>
-<a name="line-288"></a><span class='comment'>-- allows filter composition in a more readable way from left to right</span>
-<a name="line-289"></a><span class='comment'>--</span>
-<a name="line-290"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>
-<a name="line-291"></a><span class='comment'>--</span>
-<a name="line-292"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>
-<a name="line-293"></a><span class='comment'>--</span>
-<a name="line-294"></a><span class='comment'>--    - returns : the composition of f1 and f2</span>
-<a name="line-295"></a><span class='comment'>--</span>
-<a name="line-296"></a><span class='comment'>-- see also : 'o', '(..&gt;)'</span>
-<a name="line-297"></a>
-<a name="line-298"></a><a name=".>"></a><span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-299"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>.&gt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varop'>`o`</span> <span class='varid'>f</span>
-<a name="line-300"></a>
-<a name="line-301"></a><span class='comment'>-- |</span>
-<a name="line-302"></a><span class='comment'>-- apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND</span>
-<a name="line-303"></a><span class='comment'>--</span>
-<a name="line-304"></a><span class='comment'>-- see also : '(.&gt;)'</span>
-<a name="line-305"></a>
-<a name="line-306"></a><a name="seqF"></a><span class='definition'>seqF</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-307"></a><span class='definition'>seqF</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span> <span class='varid'>this</span>
-<a name="line-308"></a>
-<a name="line-309"></a><span class='comment'>-- |</span>
-<a name="line-310"></a><span class='comment'>-- binary parallel composition, the logical OR for predicate filter</span>
-<a name="line-311"></a><span class='comment'>--</span>
-<a name="line-312"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>
-<a name="line-313"></a><span class='comment'>--</span>
-<a name="line-314"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>
-<a name="line-315"></a><span class='comment'>--</span>
-<a name="line-316"></a><span class='comment'>--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results</span>
-<a name="line-317"></a>
-<a name="line-318"></a><a name="+++"></a><span class='layout'>(</span><span class='varop'>+++</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-319"></a><span class='definition'>f</span> <span class='varop'>+++</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>g</span> <span class='varid'>t</span>
-<a name="line-320"></a>
-<a name="line-321"></a><span class='comment'>-- |</span>
-<a name="line-322"></a><span class='comment'>-- special sequential composition.</span>
-<a name="line-323"></a><span class='comment'>--</span>
-<a name="line-324"></a><span class='comment'>-- filter f is applied to an argument t.</span>
-<a name="line-325"></a><span class='comment'>-- then filter g is applied to all elements of the result list,</span>
-<a name="line-326"></a><span class='comment'>-- but the argument t is also passed as extra parameter to g.</span>
-<a name="line-327"></a><span class='comment'>--</span>
-<a name="line-328"></a><span class='comment'>-- This allows for step by step transformations of a tree</span>
-<a name="line-329"></a><span class='comment'>-- with access to the original tree in every</span>
-<a name="line-330"></a><span class='comment'>-- transformation step.</span>
-<a name="line-331"></a><span class='comment'>--</span>
-<a name="line-332"></a><span class='comment'>-- see also : '(.&gt;)', 'o'</span>
-<a name="line-333"></a>
-<a name="line-334"></a><a name="..>"></a><span class='layout'>(</span><span class='varop'>..&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-335"></a><span class='definition'>f</span> <span class='varop'>..&gt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varid'>t</span> <span class='varop'>`o`</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>t</span>
-<a name="line-336"></a>
-<a name="line-337"></a><span class='comment'>-- |</span>
-<a name="line-338"></a><span class='comment'>-- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR</span>
-<a name="line-339"></a><span class='comment'>--</span>
-<a name="line-340"></a><span class='comment'>--    * 1.parameter fs :  the list of filters</span>
-<a name="line-341"></a><span class='comment'>--</span>
-<a name="line-342"></a><span class='comment'>--    - returns : the composing filter</span>
-<a name="line-343"></a>
-<a name="line-344"></a><a name="cat"></a><span class='definition'>cat</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-345"></a><span class='definition'>cat</span> <span class='varid'>fs</span>  <span class='varid'>t</span>
-<a name="line-346"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='varid'>f</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fs</span> <span class='keyglyph'>]</span>
-<a name="line-347"></a>
-<a name="line-348"></a><span class='comment'>-- |</span>
-<a name="line-349"></a><span class='comment'>-- Filter for editing the children of a tree element wise</span>
-<a name="line-350"></a><span class='comment'>--</span>
-<a name="line-351"></a><span class='comment'>--    * 1.parameter cf :  the filter applied to the children</span>
-<a name="line-352"></a><span class='comment'>--</span>
-<a name="line-353"></a><span class='comment'>--    - returns : the editing filter</span>
-<a name="line-354"></a><span class='comment'>--</span>
-<a name="line-355"></a><span class='comment'>-- see also : 'modifyChildren'</span>
-<a name="line-356"></a>
-<a name="line-357"></a><a name="processChildren"></a><span class='definition'>processChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-358"></a><span class='definition'>processChildren</span> <span class='varid'>ft</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-359"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>ft</span> <span class='varop'>$$</span> <span class='varid'>cs</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-360"></a>
-<a name="line-361"></a><span class='comment'>-- |</span>
-<a name="line-362"></a><span class='comment'>-- infix operator for applying a filter to a list of trees</span>
-<a name="line-363"></a><span class='comment'>--</span>
-<a name="line-364"></a><span class='comment'>--    * 1.parameter f :  the filter</span>
-<a name="line-365"></a><span class='comment'>--</span>
-<a name="line-366"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>
-<a name="line-367"></a><span class='comment'>--</span>
-<a name="line-368"></a><span class='comment'>--    - returns : the concatenated list of results</span>
-<a name="line-369"></a>
-<a name="line-370"></a><a name="$$"></a><span class='layout'>(</span><span class='varop'>$$</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-371"></a><span class='definition'>f</span> <span class='varop'>$$</span> <span class='varid'>l</span>
-<a name="line-372"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>f</span> <span class='varid'>l</span>
-<a name="line-373"></a>
-<a name="line-374"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-375"></a><span class='comment'>--</span>
-<a name="line-376"></a><span class='comment'>-- choices</span>
-<a name="line-377"></a><span class='comment'>--</span>
-<a name="line-378"></a>
-<a name="line-379"></a><span class='comment'>-- |</span>
-<a name="line-380"></a><span class='comment'>-- directional choice, usually written in infix notation as f `orElse` g</span>
-<a name="line-381"></a><span class='comment'>--</span>
-<a name="line-382"></a><span class='comment'>--    * 1.parameter f :  the 1. filter</span>
-<a name="line-383"></a><span class='comment'>--</span>
-<a name="line-384"></a><span class='comment'>--    - 2.parameter g :  the 2. filter</span>
-<a name="line-385"></a><span class='comment'>--</span>
-<a name="line-386"></a><span class='comment'>--    - 3.parameter t :  the tree</span>
-<a name="line-387"></a><span class='comment'>--</span>
-<a name="line-388"></a><span class='comment'>--    - returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result</span>
-<a name="line-389"></a>
-<a name="line-390"></a><a name="orElse"></a><span class='definition'>orElse</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-391"></a><a name="orElse"></a><span class='definition'>f</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>
-<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span><span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
-<a name="line-393"></a>	    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>t</span>
-<a name="line-394"></a>	    <span class='keyword'>in</span>
-<a name="line-395"></a>	    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
-<a name="line-396"></a>	    <span class='keyword'>then</span> <span class='varid'>g</span> <span class='varid'>t</span>
-<a name="line-397"></a>	    <span class='keyword'>else</span> <span class='varid'>res</span>
-<a name="line-398"></a>
-<a name="line-399"></a><span class='comment'>-- |</span>
-<a name="line-400"></a><span class='comment'>-- if then else lifted to filters</span>
-<a name="line-401"></a><span class='comment'>--</span>
-<a name="line-402"></a><span class='comment'>--    * 1.parameter p :  the predicate filter</span>
-<a name="line-403"></a><span class='comment'>--</span>
-<a name="line-404"></a><span class='comment'>--    - 2.parameter t :  the \"then\" filter</span>
-<a name="line-405"></a><span class='comment'>--</span>
-<a name="line-406"></a><span class='comment'>--    - 3.parameter e :  the \"else\" filter</span>
-<a name="line-407"></a><span class='comment'>--</span>
-<a name="line-408"></a><span class='comment'>--    - returns : the resulting conditional filter</span>
-<a name="line-409"></a>
-<a name="line-410"></a><a name="iff"></a><span class='definition'>iff</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-411"></a><span class='definition'>iff</span> <span class='varid'>p</span> <span class='varid'>f</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyword'>then</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='keyword'>else</span> <span class='varid'>g</span> <span class='varid'>c</span>
-<a name="line-412"></a>
-<a name="line-413"></a><span class='comment'>-- |</span>
-<a name="line-414"></a><span class='comment'>-- when the predicate p holds, f is applied, else the identity filter this</span>
-<a name="line-415"></a><span class='comment'>--</span>
-<a name="line-416"></a><span class='comment'>--    * 1.parameter f :  the conditinally applied filter</span>
-<a name="line-417"></a><span class='comment'>--</span>
-<a name="line-418"></a><span class='comment'>--    - 2.parameter p :  the predicate</span>
-<a name="line-419"></a><span class='comment'>--</span>
-<a name="line-420"></a><span class='comment'>--    - returns : the conditional filter</span>
-<a name="line-421"></a><span class='comment'>--</span>
-<a name="line-422"></a><span class='comment'>-- see also : 'iff', 'whenNot', 'guards', 'whenM'</span>
-<a name="line-423"></a>
-<a name="line-424"></a><a name="when"></a><span class='definition'>when</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-425"></a><a name="when"></a><span class='definition'>f</span> <span class='varop'>`when`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>this</span>
-<a name="line-426"></a>
-<a name="line-427"></a><span class='comment'>-- |</span>
-<a name="line-428"></a><span class='comment'>-- the complementary filter of when</span>
-<a name="line-429"></a><span class='comment'>--</span>
-<a name="line-430"></a><span class='comment'>-- shortcut for f `when` neg g</span>
-<a name="line-431"></a><span class='comment'>--</span>
-<a name="line-432"></a><span class='comment'>-- see also : 'iff', 'when', 'whenNotM', 'neg'</span>
-<a name="line-433"></a>
-<a name="line-434"></a><a name="whenNot"></a><span class='definition'>whenNot</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-435"></a><a name="whenNot"></a><span class='definition'>f</span> <span class='varop'>`whenNot`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>this</span> <span class='varid'>f</span>
-<a name="line-436"></a>
-<a name="line-437"></a><span class='comment'>-- |</span>
-<a name="line-438"></a><span class='comment'>-- when the predicate p holds, f is applied, else the null filter none</span>
-<a name="line-439"></a><span class='comment'>--</span>
-<a name="line-440"></a><span class='comment'>--    * 1.parameter p :  the predicate filter</span>
-<a name="line-441"></a><span class='comment'>--</span>
-<a name="line-442"></a><span class='comment'>--    - 2.parameter f :  the conditionally applied filter</span>
-<a name="line-443"></a><span class='comment'>--</span>
-<a name="line-444"></a><span class='comment'>--    - returns : the conditional filter</span>
-<a name="line-445"></a><span class='comment'>--</span>
-<a name="line-446"></a><span class='comment'>-- see also : 'iff', 'when', 'guardsM'</span>
-<a name="line-447"></a>
-<a name="line-448"></a><a name="guards"></a><span class='definition'>guards</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-449"></a><a name="guards"></a><span class='definition'>g</span> <span class='varop'>`guards`</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>none</span>
-<a name="line-450"></a>
-<a name="line-451"></a>
-<a name="line-452"></a><span class='comment'>-- |</span>
-<a name="line-453"></a><span class='comment'>-- negation lifted to filters</span>
-<a name="line-454"></a><span class='comment'>--</span>
-<a name="line-455"></a><span class='comment'>--    * 1.parameter f :  the predicate filter</span>
-<a name="line-456"></a><span class='comment'>--</span>
-<a name="line-457"></a><span class='comment'>--    - returns : the filter, that succeeds, when f failed</span>
-<a name="line-458"></a>
-<a name="line-459"></a><a name="neg"></a><span class='definition'>neg</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-460"></a><span class='definition'>neg</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>f</span> <span class='varid'>none</span> <span class='varid'>this</span>
-<a name="line-461"></a>
-<a name="line-462"></a><span class='comment'>-- |</span>
-<a name="line-463"></a><span class='comment'>-- auxiliary datatype for cases within choice filter</span>
-<a name="line-464"></a>
-<a name="line-465"></a><a name="IfThen"></a><span class='keyword'>data</span> <span class='conid'>IfThen</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='conop'>:-&gt;</span> <span class='varid'>b</span>
-<a name="line-466"></a>
-<a name="line-467"></a><span class='comment'>-- |</span>
-<a name="line-468"></a><span class='comment'>-- multiway branch. The list of cases @f :-&gt; g@ is processed sequentially,</span>
-<a name="line-469"></a><span class='comment'>-- in the first case for that f holds g is applied, if no case matches, 'none' is</span>
-<a name="line-470"></a><span class='comment'>-- applied.</span>
-<a name="line-471"></a><span class='comment'>-- This filter can be used like a case expression: @choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]@</span>
-<a name="line-472"></a><span class='comment'>--</span>
-<a name="line-473"></a><span class='comment'>-- see also : 'iff', 'choiceM'</span>
-<a name="line-474"></a>
-<a name="line-475"></a><a name="choice"></a><span class='definition'>choice</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IfThen</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-476"></a><span class='definition'>choice</span> <span class='conid'>[]</span>
-<a name="line-477"></a>    <span class='keyglyph'>=</span> <span class='varid'>none</span>
-<a name="line-478"></a>
-<a name="line-479"></a><span class='definition'>choice</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>g</span> <span class='conop'>:-&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-480"></a>    <span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>choice</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-481"></a>
-<a name="line-482"></a><span class='comment'>-- |</span>
-<a name="line-483"></a><span class='comment'>-- pruning: keep only those results from f for which g holds, usually written in infix notation as f `containing` g</span>
-<a name="line-484"></a><span class='comment'>--</span>
-<a name="line-485"></a><span class='comment'>--    * 1.parameter f :  the processing filter</span>
-<a name="line-486"></a><span class='comment'>--</span>
-<a name="line-487"></a><span class='comment'>--    - 2.parameter g :  the predicate filter</span>
-<a name="line-488"></a><span class='comment'>--</span>
-<a name="line-489"></a><span class='comment'>--    - 3.parameter t :  the tree</span>
-<a name="line-490"></a><span class='comment'>--</span>
-<a name="line-491"></a><span class='comment'>--    - returns : all trees r from f t, for which g r holds (is not the empty list)</span>
-<a name="line-492"></a><span class='comment'>--</span>
-<a name="line-493"></a><span class='comment'>-- see also : 'notContaining'</span>
-<a name="line-494"></a>
-<a name="line-495"></a><a name="containing"></a><span class='definition'>containing</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-496"></a><a name="containing"></a><span class='definition'>f</span> <span class='varop'>`containing`</span> <span class='varid'>g</span>
-<a name="line-497"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span>
-<a name="line-498"></a>
-<a name="line-499"></a><span class='comment'>-- |</span>
-<a name="line-500"></a><span class='comment'>-- pruning: keep only those results from f for which g does not hold</span>
-<a name="line-501"></a><span class='comment'>--</span>
-<a name="line-502"></a><span class='comment'>-- see also : 'containing'</span>
-<a name="line-503"></a>
-<a name="line-504"></a><a name="notContaining"></a><span class='definition'>notContaining</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-505"></a><a name="notContaining"></a><span class='definition'>f</span> <span class='varop'>`notContaining`</span> <span class='varid'>g</span>
-<a name="line-506"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span>
-<a name="line-507"></a>
-<a name="line-508"></a><span class='comment'>-- |</span>
-<a name="line-509"></a><span class='comment'>-- pruning: monadic version of containing, usually written in infix notation as f `containingM` g</span>
-<a name="line-510"></a><span class='comment'>--</span>
-<a name="line-511"></a><span class='comment'>--    * 1.parameter f :  the monadic processing filter</span>
-<a name="line-512"></a><span class='comment'>--</span>
-<a name="line-513"></a><span class='comment'>--    - 2.parameter g :  the predicate filter</span>
-<a name="line-514"></a><span class='comment'>--</span>
-<a name="line-515"></a><span class='comment'>--    - 3.parameter t :  the tree</span>
-<a name="line-516"></a><span class='comment'>--</span>
-<a name="line-517"></a><span class='comment'>--    - returns : all trees r from f t, for which g r holds (is not the empty list)</span>
-<a name="line-518"></a><span class='comment'>--</span>
-<a name="line-519"></a><span class='comment'>-- see also : 'notContaining'</span>
-<a name="line-520"></a>
-<a name="line-521"></a><a name="containingM"></a><span class='definition'>containingM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-522"></a><a name="containingM"></a><span class='definition'>f</span> <span class='varop'>`containingM`</span> <span class='varid'>g</span>
-<a name="line-523"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
-<a name="line-524"></a>             <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>
-<a name="line-525"></a>             <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varid'>res</span>
-<a name="line-526"></a>
-<a name="line-527"></a><span class='comment'>-- |</span>
-<a name="line-528"></a><span class='comment'>-- pronounced \"slash\", meaning g inside f</span>
-<a name="line-529"></a>
-<a name="line-530"></a><a name="/>"></a><span class='layout'>(</span><span class='varop'>/&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-531"></a><span class='definition'>f</span> <span class='varop'>/&gt;</span> <span class='varid'>g</span>
-<a name="line-532"></a>    <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varop'>`o`</span> <span class='varid'>getChildren</span> <span class='varop'>`o`</span> <span class='varid'>f</span>
-<a name="line-533"></a>
-<a name="line-534"></a><span class='comment'>-- |</span>
-<a name="line-535"></a><span class='comment'>-- pronounced \"outside\" meaning f containing g</span>
-<a name="line-536"></a>
-<a name="line-537"></a><a name="</"></a><span class='layout'>(</span><span class='varop'>&lt;/</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-538"></a><span class='definition'>f</span> <span class='varop'>&lt;/</span> <span class='varid'>g</span>
-<a name="line-539"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`containing`</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>`o`</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
-<a name="line-540"></a>
-<a name="line-541"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-542"></a><span class='comment'>--</span>
-<a name="line-543"></a><span class='comment'>-- recursive search filters</span>
-<a name="line-544"></a>
-<a name="line-545"></a><span class='comment'>-- |</span>
-<a name="line-546"></a><span class='comment'>-- top down search.</span>
-<a name="line-547"></a><span class='comment'>--</span>
-<a name="line-548"></a><span class='comment'>-- search terminates, when filter f succeeds</span>
-<a name="line-549"></a><span class='comment'>-- can e.g. be used for finding all outermost tag node of a specific kind</span>
-<a name="line-550"></a>
-<a name="line-551"></a><a name="deep"></a><span class='definition'>deep</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-552"></a><span class='definition'>deep</span> <span class='varid'>f</span>
-<a name="line-553"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`orElse`</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>f</span> <span class='varop'>`o`</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
-<a name="line-554"></a>
-<a name="line-555"></a><span class='comment'>-- |</span>
-<a name="line-556"></a><span class='comment'>-- bottom up search.</span>
-<a name="line-557"></a><span class='comment'>--</span>
-<a name="line-558"></a><span class='comment'>-- first the children are processed,</span>
-<a name="line-559"></a><span class='comment'>-- if this does not succeed, the node itself is processed</span>
-<a name="line-560"></a><span class='comment'>-- can e.g. be used for finding all innermost tag nodes of a specific kind</span>
-<a name="line-561"></a>
-<a name="line-562"></a><a name="deepest"></a><span class='definition'>deepest</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-563"></a><span class='definition'>deepest</span> <span class='varid'>f</span>
-<a name="line-564"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>deepest</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>f</span>
-<a name="line-565"></a>
-<a name="line-566"></a><span class='comment'>-- |</span>
-<a name="line-567"></a><span class='comment'>-- process all nodes of the whole tree.</span>
-<a name="line-568"></a><span class='comment'>--</span>
-<a name="line-569"></a><span class='comment'>-- can e.g. be used for finding all nodes of a specific kind</span>
-<a name="line-570"></a>
-<a name="line-571"></a><a name="multi"></a><span class='definition'>multi</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-572"></a><span class='definition'>multi</span> <span class='varid'>f</span>
-<a name="line-573"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>+++</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>multi</span> <span class='varid'>f</span><span class='layout'>)</span>
-<a name="line-574"></a>
-<a name="line-575"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-576"></a><span class='comment'>--</span>
-<a name="line-577"></a><span class='comment'>-- recursive transformation filters</span>
-<a name="line-578"></a><span class='comment'>--</span>
-<a name="line-579"></a>
-<a name="line-580"></a><span class='comment'>-- |</span>
-<a name="line-581"></a><span class='comment'>-- bottom up transformation</span>
-<a name="line-582"></a><span class='comment'>--</span>
-<a name="line-583"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>
-<a name="line-584"></a><span class='comment'>--</span>
-<a name="line-585"></a><span class='comment'>--    - returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner</span>
-<a name="line-586"></a><span class='comment'>--</span>
-<a name="line-587"></a><span class='comment'>-- see also : 'processTopDown', 'processBottomUpIfNot'</span>
-<a name="line-588"></a>
-<a name="line-589"></a><a name="processBottomUp"></a><span class='definition'>processBottomUp</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-590"></a><span class='definition'>processBottomUp</span> <span class='varid'>f</span>
-<a name="line-591"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processBottomUp</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>.&gt;</span> <span class='varid'>f</span>
-<a name="line-592"></a>
-<a name="line-593"></a><span class='comment'>-- |</span>
-<a name="line-594"></a><span class='comment'>-- top down transformation</span>
-<a name="line-595"></a><span class='comment'>--</span>
-<a name="line-596"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>
-<a name="line-597"></a><span class='comment'>--</span>
-<a name="line-598"></a><span class='comment'>--    - returns : the filter that applies f first to the tree and then recursively to all subtrees of the result</span>
-<a name="line-599"></a><span class='comment'>--</span>
-<a name="line-600"></a><span class='comment'>-- see also : 'processBottomUp'</span>
-<a name="line-601"></a>
-<a name="line-602"></a><a name="processTopDown"></a><span class='definition'>processTopDown</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-603"></a><span class='definition'>processTopDown</span> <span class='varid'>f</span>
-<a name="line-604"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>.&gt;</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>f</span><span class='layout'>)</span>
-<a name="line-605"></a>
-<a name="line-606"></a><span class='comment'>-- |</span>
-<a name="line-607"></a><span class='comment'>-- guarded bottom up transformation, stops at subtrees for which a predicate p holds</span>
-<a name="line-608"></a><span class='comment'>--</span>
-<a name="line-609"></a><span class='comment'>--    * 1.parameter f :  the transforming filter</span>
-<a name="line-610"></a><span class='comment'>--</span>
-<a name="line-611"></a><span class='comment'>--    - 2.parameter p :  the predicate filter for the guard</span>
-<a name="line-612"></a><span class='comment'>--</span>
-<a name="line-613"></a><span class='comment'>--    - returns : the filter for processing all (sub-)trees</span>
-<a name="line-614"></a><span class='comment'>--</span>
-<a name="line-615"></a><span class='comment'>-- see also : 'processBottomUp'</span>
-<a name="line-616"></a>
-<a name="line-617"></a><a name="processBottomUpIfNot"></a><span class='definition'>processBottomUpIfNot</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-618"></a><span class='definition'>processBottomUpIfNot</span> <span class='varid'>f</span> <span class='varid'>p</span>
-<a name="line-619"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processBottomUpIfNot</span> <span class='varid'>f</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>.&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>p</span>
-<a name="line-620"></a>
-<a name="line-621"></a><span class='comment'>-- |</span>
-<a name="line-622"></a><span class='comment'>-- top down transformation until a node to be transformed is found</span>
-<a name="line-623"></a><span class='comment'>--</span>
-<a name="line-624"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>
-<a name="line-625"></a><span class='comment'>--</span>
-<a name="line-626"></a><span class='comment'>--    - returns : the filter that applies f first to the tree and, if the filter does not succeed,</span>
-<a name="line-627"></a><span class='comment'>--		  recursively to all children of the input tree.</span>
-<a name="line-628"></a><span class='comment'>--</span>
-<a name="line-629"></a><span class='comment'>-- Example:</span>
-<a name="line-630"></a><span class='comment'>--</span>
-<a name="line-631"></a><span class='comment'>-- @processTopDownUntil none@</span>
-<a name="line-632"></a><span class='comment'>--</span>
-<a name="line-633"></a><span class='comment'>-- is the identity filter (maybe a bit more inefficient).</span>
-<a name="line-634"></a><span class='comment'>--</span>
-<a name="line-635"></a><span class='comment'>-- Example:</span>
-<a name="line-636"></a><span class='comment'>--</span>
-<a name="line-637"></a><span class='comment'>-- @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@</span>
-<a name="line-638"></a><span class='comment'>--</span>
-<a name="line-639"></a><span class='comment'>-- is a filter for adding an attribute border=\"2\" in all top level table tags.</span>
-<a name="line-640"></a><span class='comment'>--		  The content of table tags will remain unchanged.</span>
-<a name="line-641"></a><span class='comment'>--</span>
-<a name="line-642"></a><span class='comment'>-- see also : 'processTopDown', 'processBottomUp'</span>
-<a name="line-643"></a>
-<a name="line-644"></a><a name="processTopDownUntil"></a><span class='definition'>processTopDownUntil</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-645"></a><span class='definition'>processTopDownUntil</span> <span class='varid'>f</span> <span class='varid'>t</span>
-<a name="line-646"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>res</span>
-<a name="line-647"></a>	<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDownUntil</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>t</span>
-<a name="line-648"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-649"></a>	<span class='keyglyph'>=</span> <span class='varid'>res</span>
-<a name="line-650"></a>    <span class='keyword'>where</span>
-<a name="line-651"></a>    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>t</span>
-<a name="line-652"></a>
-<a name="line-653"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-654"></a><span class='comment'>--</span>
-<a name="line-655"></a>
-<a name="line-656"></a><span class='comment'>-- |</span>
-<a name="line-657"></a><span class='comment'>-- insertion of trees into the list of children at a given position</span>
-<a name="line-658"></a><span class='comment'>--</span>
-<a name="line-659"></a><span class='comment'>-- useful for inserting something into the list of children at a given position</span>
-<a name="line-660"></a><span class='comment'>-- the list of children is split with the @splitAt@ function</span>
-<a name="line-661"></a><span class='comment'>-- the nodes are inserted between these two sublists.</span>
-<a name="line-662"></a><span class='comment'>--</span>
-<a name="line-663"></a><span class='comment'>-- examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front</span>
-<a name="line-664"></a><span class='comment'>-- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child</span>
-<a name="line-665"></a><span class='comment'>--</span>
-<a name="line-666"></a><span class='comment'>-- see also: 'insertChildrenAfter'</span>
-<a name="line-667"></a>
-<a name="line-668"></a>
-<a name="line-669"></a><a name="insertChildrenAt"></a><span class='definition'>insertChildrenAt</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-670"></a><span class='definition'>insertChildrenAt</span> <span class='varid'>i</span> <span class='varid'>ins</span> <span class='varid'>t</span>
-<a name="line-671"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>cl1</span> <span class='varop'>++</span> <span class='varid'>ins</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='varid'>t</span>
-<a name="line-672"></a>    <span class='keyword'>where</span>
-<a name="line-673"></a>    <span class='layout'>(</span><span class='varid'>cl1</span><span class='layout'>,</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='varid'>i</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>
-<a name="line-674"></a>
-<a name="line-675"></a><span class='comment'>-- |</span>
-<a name="line-676"></a><span class='comment'>-- insertion of trees into the list of children after specific elements</span>
-<a name="line-677"></a><span class='comment'>--</span>
-<a name="line-678"></a><span class='comment'>-- useful for inserting something into the list of children of a node</span>
-<a name="line-679"></a><span class='comment'>-- the list of children is split with the @span@ function and the filter p as predicate</span>
-<a name="line-680"></a><span class='comment'>-- the nodes are inserted between these two sublists</span>
-<a name="line-681"></a><span class='comment'>--</span>
-<a name="line-682"></a><span class='comment'>-- examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front</span>
-<a name="line-683"></a><span class='comment'>-- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children</span>
-<a name="line-684"></a><span class='comment'>--</span>
-<a name="line-685"></a><span class='comment'>-- see also: 'insertChildrenAt'</span>
-<a name="line-686"></a>
-<a name="line-687"></a><a name="insertChildrenAfter"></a><span class='definition'>insertChildrenAfter</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>
-<a name="line-688"></a><span class='definition'>insertChildrenAfter</span> <span class='varid'>p</span> <span class='varid'>ins</span> <span class='varid'>t</span>
-<a name="line-689"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>cl1</span> <span class='varop'>++</span> <span class='varid'>ins</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='varid'>t</span>
-<a name="line-690"></a>    <span class='keyword'>where</span>
-<a name="line-691"></a>    <span class='layout'>(</span><span class='varid'>cl1</span><span class='layout'>,</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>
-<a name="line-692"></a>
-<a name="line-693"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-694"></a><span class='comment'>--</span>
-<a name="line-695"></a><span class='comment'>-- monadic filter</span>
-<a name="line-696"></a>
-<a name="line-697"></a><span class='comment'>-- |</span>
-<a name="line-698"></a><span class='comment'>-- the monadic version of the identity filter this.</span>
-<a name="line-699"></a><span class='comment'>--</span>
-<a name="line-700"></a><span class='comment'>-- see also : 'this'</span>
-<a name="line-701"></a>
-<a name="line-702"></a><a name="thisM"></a><span class='definition'>thisM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-703"></a><span class='definition'>thisM</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>this</span>
-<a name="line-704"></a>
-<a name="line-705"></a><span class='comment'>-- |</span>
-<a name="line-706"></a><span class='comment'>-- the monadic version of the null filter none.</span>
-<a name="line-707"></a><span class='comment'>--</span>
-<a name="line-708"></a><span class='comment'>-- see also : 'none'</span>
-<a name="line-709"></a>
-<a name="line-710"></a><a name="noneM"></a><span class='definition'>noneM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-711"></a><span class='definition'>noneM</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>none</span>
-<a name="line-712"></a>
-<a name="line-713"></a><span class='comment'>-- |</span>
-<a name="line-714"></a><span class='comment'>-- sequential composition of monadic filters, monadic version of \".&gt;\".</span>
-<a name="line-715"></a><span class='comment'>--</span>
-<a name="line-716"></a><span class='comment'>--    * 1.parameter f1 :  the 1. monadic filter</span>
-<a name="line-717"></a><span class='comment'>--</span>
-<a name="line-718"></a><span class='comment'>--    - 2.parameter f2 :  the 2. monadic filter</span>
-<a name="line-719"></a><span class='comment'>--</span>
-<a name="line-720"></a><span class='comment'>--    - returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)</span>
-<a name="line-721"></a><span class='comment'>--</span>
-<a name="line-722"></a><span class='comment'>-- see also : '(.&gt;)'</span>
-<a name="line-723"></a>
-<a name="line-724"></a><a name=".>>"></a><span class='layout'>(</span><span class='varop'>.&gt;&gt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-725"></a><a name="cmd1"></a><span class='definition'>cmd1</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>cmd2</span>
-<a name="line-726"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-727"></a>      <span class='keyword'>do</span>
-<a name="line-728"></a>      <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd1</span> <span class='varid'>t</span>
-<a name="line-729"></a>      <span class='varid'>r2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mapM</span> <span class='varid'>cmd2</span> <span class='varid'>r1</span>
-<a name="line-730"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>r2</span><span class='layout'>)</span>
-<a name="line-731"></a>
-<a name="line-732"></a><span class='comment'>-- |</span>
-<a name="line-733"></a><span class='comment'>-- generalized sequential composition of monadic filters</span>
-<a name="line-734"></a>
-<a name="line-735"></a><a name="seqM"></a><span class='definition'>seqM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-736"></a><span class='definition'>seqM</span>
-<a name="line-737"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>thisM</span>
-<a name="line-738"></a>
-<a name="line-739"></a><span class='comment'>-- |</span>
-<a name="line-740"></a><span class='comment'>-- binary parallel composition, the logical OR for predicate filter</span>
-<a name="line-741"></a><span class='comment'>--</span>
-<a name="line-742"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>
-<a name="line-743"></a><span class='comment'>--</span>
-<a name="line-744"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>
-<a name="line-745"></a><span class='comment'>--</span>
-<a name="line-746"></a><span class='comment'>--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results</span>
-<a name="line-747"></a><span class='comment'>-- see also: 'cat', '+++', 'catM'</span>
-<a name="line-748"></a>
-<a name="line-749"></a><a name="+++>>"></a><span class='layout'>(</span><span class='varop'>+++&gt;&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-750"></a><span class='definition'>f</span> <span class='varop'>+++&gt;&gt;</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
-<a name="line-751"></a>			 <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>
-<a name="line-752"></a>			 <span class='varid'>r2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>t</span>
-<a name="line-753"></a>			 <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>r1</span> <span class='varop'>++</span> <span class='varid'>r2</span><span class='layout'>)</span>
-<a name="line-754"></a>
-<a name="line-755"></a><span class='comment'>-- |</span>
-<a name="line-756"></a><span class='comment'>-- apply a list of monadic filters</span>
-<a name="line-757"></a><span class='comment'>--</span>
-<a name="line-758"></a><span class='comment'>--    * 1.parameter fs :  the list of filters</span>
-<a name="line-759"></a><span class='comment'>--</span>
-<a name="line-760"></a><span class='comment'>--    - returns : the composing filter</span>
-<a name="line-761"></a><span class='comment'>-- see also: 'cat', '+++', '+++&gt;&gt;'</span>
-<a name="line-762"></a>
-<a name="line-763"></a><a name="catM"></a><span class='definition'>catM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-764"></a><span class='definition'>catM</span> <span class='varid'>fs</span>  <span class='varid'>t</span>
-<a name="line-765"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-766"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>sequence</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>fs</span><span class='layout'>)</span>
-<a name="line-767"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='varid'>res</span>
-<a name="line-768"></a>
-<a name="line-769"></a><span class='comment'>-- |</span>
-<a name="line-770"></a><span class='comment'>-- monadic if-then-else.</span>
-<a name="line-771"></a><span class='comment'>--</span>
-<a name="line-772"></a><span class='comment'>--    * 1.parameter p :  the predicate</span>
-<a name="line-773"></a><span class='comment'>--</span>
-<a name="line-774"></a><span class='comment'>--    - 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree</span>
-<a name="line-775"></a><span class='comment'>--</span>
-<a name="line-776"></a><span class='comment'>--    - 3.parameter elseP :  the else part</span>
-<a name="line-777"></a><span class='comment'>--</span>
-<a name="line-778"></a><span class='comment'>--    - returns : the monadic filter for the conditional</span>
-<a name="line-779"></a>
-<a name="line-780"></a><a name="ifM"></a><span class='definition'>ifM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-781"></a><span class='definition'>ifM</span> <span class='varid'>p</span> <span class='varid'>thenPart</span> <span class='varid'>elsePart</span>
-<a name="line-782"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-783"></a>      <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>t</span>
-<a name="line-784"></a>      <span class='keyword'>then</span> <span class='varid'>thenPart</span> <span class='varid'>t</span>
-<a name="line-785"></a>      <span class='keyword'>else</span> <span class='varid'>elsePart</span> <span class='varid'>t</span>
-<a name="line-786"></a>
-<a name="line-787"></a><span class='comment'>-- |</span>
-<a name="line-788"></a><span class='comment'>-- monadic version of multiway branch. The list of cases @f :-&gt; g@ is processed sequentially,</span>
-<a name="line-789"></a><span class='comment'>-- in the first case for that f holds g is applied, if no case matches, 'noneM' is</span>
-<a name="line-790"></a><span class='comment'>-- applied.</span>
-<a name="line-791"></a><span class='comment'>-- This filter can be used like a case expression: @choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]@</span>
-<a name="line-792"></a><span class='comment'>--</span>
-<a name="line-793"></a><span class='comment'>-- see also : 'choice', 'ifM'</span>
-<a name="line-794"></a>
-<a name="line-795"></a><a name="choiceM"></a><span class='definition'>choiceM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>IfThen</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-796"></a><span class='definition'>choiceM</span> <span class='conid'>[]</span>
-<a name="line-797"></a>    <span class='keyglyph'>=</span> <span class='varid'>noneM</span>
-<a name="line-798"></a>
-<a name="line-799"></a><span class='definition'>choiceM</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>g</span> <span class='conop'>:-&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-800"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>choiceM</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-801"></a>
-<a name="line-802"></a>
-<a name="line-803"></a><span class='comment'>-- |</span>
-<a name="line-804"></a><span class='comment'>-- when the predicate p holds, the monadic filter f is applied, else the identity filter.</span>
-<a name="line-805"></a><span class='comment'>--</span>
-<a name="line-806"></a><span class='comment'>--    * 1.parameter f :  the conditinally applied monadic filter</span>
-<a name="line-807"></a><span class='comment'>--</span>
-<a name="line-808"></a><span class='comment'>--    - 2.parameter p :  the simple predicate</span>
-<a name="line-809"></a><span class='comment'>--</span>
-<a name="line-810"></a><span class='comment'>--    - returns : the conditional filter</span>
-<a name="line-811"></a><span class='comment'>--</span>
-<a name="line-812"></a><span class='comment'>-- see also : 'ifM', 'when', 'guardsM', 'whenNotM'</span>
-<a name="line-813"></a>
-<a name="line-814"></a><a name="whenM"></a><span class='definition'>whenM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-815"></a><a name="whenM"></a><span class='definition'>f</span> <span class='varop'>`whenM`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>thisM</span>
-<a name="line-816"></a>
-<a name="line-817"></a><span class='comment'>-- |</span>
-<a name="line-818"></a><span class='comment'>-- the complementary filter of whenM.</span>
-<a name="line-819"></a><span class='comment'>--</span>
-<a name="line-820"></a><span class='comment'>-- see also : 'ifM', 'whenM', 'whenNot'</span>
-<a name="line-821"></a>
-<a name="line-822"></a><a name="whenNotM"></a><span class='definition'>whenNotM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-823"></a><a name="whenNotM"></a><span class='definition'>f</span> <span class='varop'>`whenNotM`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>thisM</span> <span class='varid'>f</span>
-<a name="line-824"></a>
-<a name="line-825"></a><span class='comment'>-- |</span>
-<a name="line-826"></a><span class='comment'>-- when the predicate p holds, the monadic filter f is applied, else the null filter.</span>
-<a name="line-827"></a><span class='comment'>--</span>
-<a name="line-828"></a><span class='comment'>--    * 1.parameter p :  the simple predicate filter</span>
-<a name="line-829"></a><span class='comment'>--</span>
-<a name="line-830"></a><span class='comment'>--    - 2.parameter f :  the conditionally applied monadic filter</span>
-<a name="line-831"></a><span class='comment'>--</span>
-<a name="line-832"></a><span class='comment'>--    - returns : the conditional filter</span>
-<a name="line-833"></a><span class='comment'>--</span>
-<a name="line-834"></a><span class='comment'>-- see also : 'ifM', 'guards', 'whenM'</span>
-<a name="line-835"></a>
-<a name="line-836"></a><a name="guardsM"></a><span class='definition'>guardsM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-837"></a><a name="guardsM"></a><span class='definition'>g</span> <span class='varop'>`guardsM`</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>noneM</span>
-<a name="line-838"></a>
-<a name="line-839"></a><span class='comment'>-- |</span>
-<a name="line-840"></a><span class='comment'>-- Filter for editing the children of a tree with a monadic filter</span>
-<a name="line-841"></a><span class='comment'>--</span>
-<a name="line-842"></a><span class='comment'>--    * 1.parameter cf :  the monadic filter applied to the children</span>
-<a name="line-843"></a><span class='comment'>--</span>
-<a name="line-844"></a><span class='comment'>--    - returns : the monadic editing filter</span>
-<a name="line-845"></a><span class='comment'>--</span>
-<a name="line-846"></a><span class='comment'>-- see also : 'processChildren'</span>
-<a name="line-847"></a>
-<a name="line-848"></a><a name="processChildrenM"></a><span class='definition'>processChildrenM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-849"></a><span class='definition'>processChildrenM</span> <span class='varid'>ft</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-850"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-851"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ft</span> <span class='varop'>$$&lt;</span> <span class='varid'>cs</span>
-<a name="line-852"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>res</span><span class='keyglyph'>]</span>
-<a name="line-853"></a>
-<a name="line-854"></a><span class='comment'>-- |</span>
-<a name="line-855"></a><span class='comment'>-- monadic variant of 'processTopDown'</span>
-<a name="line-856"></a>
-<a name="line-857"></a><a name="processTopDownM"></a><span class='definition'>processTopDownM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-858"></a><span class='definition'>processTopDownM</span> <span class='varid'>f</span>
-<a name="line-859"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>processTopDownM</span> <span class='varid'>f</span><span class='layout'>)</span>
-<a name="line-860"></a>
-<a name="line-861"></a><span class='comment'>-- |</span>
-<a name="line-862"></a><span class='comment'>-- monadic variant of 'processBottomUp'</span>
-<a name="line-863"></a>
-<a name="line-864"></a><a name="processBottomUpM"></a><span class='definition'>processBottomUpM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-865"></a><span class='definition'>processBottomUpM</span> <span class='varid'>f</span>
-<a name="line-866"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>processBottomUpM</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>f</span>
-<a name="line-867"></a>
-<a name="line-868"></a><span class='comment'>-- |</span>
-<a name="line-869"></a><span class='comment'>-- infix operator for applying a monadic filter to a list of trees,</span>
-<a name="line-870"></a><span class='comment'>-- typically used in do-notation for processing of intermediate results.</span>
-<a name="line-871"></a><span class='comment'>--</span>
-<a name="line-872"></a><span class='comment'>--    * 1.parameter f :  the monadic filter</span>
-<a name="line-873"></a><span class='comment'>--</span>
-<a name="line-874"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>
-<a name="line-875"></a><span class='comment'>--</span>
-<a name="line-876"></a><span class='comment'>--    - returns : the concatenated list of results</span>
-<a name="line-877"></a><span class='comment'>--</span>
-<a name="line-878"></a><span class='comment'>-- see also : '($$)'</span>
-<a name="line-879"></a>
-<a name="line-880"></a><a name="$$<"></a><span class='layout'>(</span><span class='varop'>$$&lt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-881"></a><a name="cmd"></a><span class='definition'>cmd</span> <span class='varop'>$$&lt;</span> <span class='varid'>l</span>
-<a name="line-882"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-883"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mapM</span> <span class='varid'>cmd</span> <span class='varid'>l</span>
-<a name="line-884"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>r</span><span class='layout'>)</span>
-<a name="line-885"></a>
-<a name="line-886"></a><span class='comment'>-- |</span>
-<a name="line-887"></a><span class='comment'>-- lift a filter to a monadic filter</span>
-<a name="line-888"></a><span class='comment'>--</span>
-<a name="line-889"></a><span class='comment'>--    * 1.parameter f :  the /simple/ filter</span>
-<a name="line-890"></a><span class='comment'>--</span>
-<a name="line-891"></a><span class='comment'>--    - returns : the lifted monadic version</span>
-<a name="line-892"></a>
-<a name="line-893"></a><a name="liftMf"></a><span class='definition'>liftMf</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>
-<a name="line-894"></a><span class='definition'>liftMf</span> <span class='varid'>f</span> <span class='varid'>t</span>
-<a name="line-895"></a>    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>t</span><span class='layout'>)</span>
-<a name="line-896"></a>
-<a name="line-897"></a><span class='comment'>-- |</span>
-<a name="line-898"></a><span class='comment'>-- run an arbitray command on a tree t and return the tree,</span>
-<a name="line-899"></a><span class='comment'>-- used for inserting arbitray commands in a filter pipeline</span>
-<a name="line-900"></a><span class='comment'>--</span>
-<a name="line-901"></a><span class='comment'>--    * 1.parameter cmd :  the command</span>
-<a name="line-902"></a><span class='comment'>--</span>
-<a name="line-903"></a><span class='comment'>--    - 2.parameter t :  the argument tree</span>
-<a name="line-904"></a><span class='comment'>--</span>
-<a name="line-905"></a><span class='comment'>--    - returns : the unchanged tree as a single element list</span>
-<a name="line-906"></a>
-<a name="line-907"></a><a name="performAction"></a><span class='definition'>performAction</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-908"></a><span class='definition'>performAction</span> <span class='varid'>cmd</span> <span class='varid'>t</span>
-<a name="line-909"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-910"></a>      <span class='varid'>cmd</span> <span class='varid'>t</span>
-<a name="line-911"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>
-<a name="line-912"></a>
-<a name="line-913"></a><span class='comment'>-- eof ------------------------------------------------------------</span>
-</pre></body>
-</html>
diff --git a/doc/hdoc/src/Data-Tree-NTree-TypeDefs.html b/doc/hdoc/src/Data-Tree-NTree-TypeDefs.html
--- a/doc/hdoc/src/Data-Tree-NTree-TypeDefs.html
+++ b/doc/hdoc/src/Data-Tree-NTree-TypeDefs.html
@@ -10,7 +10,7 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Data.Tree.NTree.TypeDefs
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html
@@ -121,309 +121,322 @@
 <a name="line-113"></a>
 <a name="line-114"></a><a name="getFileContents"></a><span class='definition'>getFileContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
 <a name="line-115"></a><span class='definition'>getFileContents</span>
-<a name="line-116"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
-<a name="line-117"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-118"></a>	       <span class='varid'>getPathFromURI</span>
-<a name="line-119"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-120"></a>	       <span class='varid'>arrIO</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getCont</span>
-<a name="line-121"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-122"></a>	       <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>		<span class='comment'>-- io error occured</span>
-<a name="line-123"></a>		 <span class='varop'>|||</span>
-<a name="line-124"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>	<span class='comment'>-- content read</span>
+<a name="line-116"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span>  <span class='varid'>a_strict_input</span>
+<a name="line-117"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-118"></a>		   <span class='varid'>arr</span> <span class='varid'>isTrueValue</span>
+<a name="line-119"></a>		 <span class='layout'>)</span>
+<a name="line-120"></a>		 <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-121"></a>		 <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-122"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-123"></a>		   <span class='varid'>getPathFromURI</span>
+<a name="line-124"></a>		 <span class='layout'>)</span>
 <a name="line-125"></a>	       <span class='layout'>)</span>
-<a name="line-126"></a>	     <span class='layout'>)</span>
-<a name="line-127"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-128"></a>      <span class='varid'>addMimeType</span>
-<a name="line-129"></a>
-<a name="line-130"></a><a name="getStdinContents"></a><span class='definition'>getStdinContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-131"></a><span class='definition'>getStdinContents</span>
-<a name="line-132"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getStdinCont</span><span class='layout'>)</span>
-<a name="line-133"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-134"></a>	       <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>		<span class='comment'>-- io error occured</span>
-<a name="line-135"></a>		 <span class='varop'>|||</span>
-<a name="line-136"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>	<span class='comment'>-- content read</span>
-<a name="line-137"></a>	       <span class='layout'>)</span>
-<a name="line-138"></a>	     <span class='layout'>)</span>
-<a name="line-139"></a>
-<a name="line-140"></a><a name="addError"></a><span class='definition'>addError</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-141"></a><span class='definition'>addError</span> <span class='varid'>e</span>
-<a name="line-142"></a>    <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='varid'>e</span>
-<a name="line-143"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-144"></a>      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>
-<a name="line-145"></a>
-<a name="line-146"></a><a name="addMimeType"></a><span class='definition'>addMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-147"></a><span class='definition'>addMimeType</span>
-<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='varid'>addMime</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
-<a name="line-149"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-150"></a>		   <span class='layout'>(</span> <span class='varid'>uriToMime</span> <span class='varop'>$&lt;</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_mimeTypes</span> <span class='layout'>)</span>
-<a name="line-151"></a>		 <span class='layout'>)</span>
-<a name="line-152"></a>    <span class='keyword'>where</span>
-<a name="line-153"></a>    <span class='varid'>addMime</span> <span class='varid'>mt</span>
-<a name="line-154"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferMimeType</span> <span class='varid'>mt</span>
-<a name="line-155"></a>    <span class='varid'>uriToMime</span> <span class='varid'>mtt</span>
-<a name="line-156"></a>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>extensionToMimeType</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>takeExtension</span> <span class='varop'>$</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varid'>mtt</span> <span class='layout'>)</span>
-<a name="line-157"></a>
-<a name="line-158"></a><a name="addTxtContent"></a><span class='definition'>addTxtContent</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-159"></a><span class='definition'>addTxtContent</span> <span class='varid'>c</span>
-<a name="line-160"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-161"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-162"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>
-<a name="line-163"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-164"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>
-<a name="line-165"></a>
-<a name="line-166"></a><a name="getHttpContents"></a><span class='definition'>getHttpContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-167"></a><span class='definition'>getHttpContents</span>
-<a name="line-168"></a>    <span class='keyglyph'>=</span> <span class='varid'>getCont</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
-<a name="line-169"></a>		    <span class='varop'>&amp;&amp;&amp;</span>
-<a name="line-170"></a>		    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrlAsAssoc</span>	<span class='comment'>-- get all attributes of root node</span>
-<a name="line-171"></a>			<span class='varop'>&amp;&amp;&amp;</span>
-<a name="line-172"></a>			<span class='varid'>getAllParamsString</span>	<span class='comment'>-- get all system params</span>
-<a name="line-173"></a>		      <span class='layout'>)</span>
-<a name="line-174"></a>		      <span class='varop'>&gt;&gt;^</span> <span class='varid'>uncurry</span> <span class='varid'>addEntries</span>	<span class='comment'>-- merge them, attributes overwrite system params</span>
-<a name="line-175"></a>		    <span class='layout'>)</span>
-<a name="line-176"></a>		  <span class='layout'>)</span>
-<a name="line-177"></a>      <span class='keyword'>where</span>
-<a name="line-178"></a>      <span class='varid'>getAttrlAsAssoc</span>				<span class='comment'>-- get the attributes as assoc list</span>
-<a name="line-179"></a>	  <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span>
-<a name="line-180"></a>		    <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>
-<a name="line-181"></a>			  <span class='varop'>&amp;&amp;&amp;</span>
-<a name="line-182"></a>			  <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
-<a name="line-183"></a>			<span class='layout'>)</span>
-<a name="line-184"></a>		  <span class='layout'>)</span>
-<a name="line-185"></a>
-<a name="line-186"></a>      <span class='varid'>getCont</span> <span class='varid'>uri</span> <span class='varid'>options</span>
-<a name="line-187"></a>	  <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"get HTTP via libcurl, uri="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>" options="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>options</span> <span class='layout'>)</span>
-<a name="line-188"></a>		       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-189"></a>		       <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='conid'>LibCURL</span><span class='varop'>.</span><span class='varid'>getCont</span> <span class='varid'>options</span> <span class='varid'>uri</span> <span class='layout'>)</span>
-<a name="line-190"></a>		     <span class='layout'>)</span>
-<a name="line-191"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-192"></a>		     <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>
-<a name="line-193"></a>		       <span class='varop'>|||</span>
-<a name="line-194"></a>		       <span class='varid'>arr</span> <span class='varid'>addContent</span>
-<a name="line-195"></a>		     <span class='layout'>)</span>
-<a name="line-196"></a>		   <span class='layout'>)</span>
-<a name="line-197"></a>		    
-<a name="line-198"></a><span class='comment'>{- old stuff
-<a name="line-199"></a>	  = applyA ( ( if curl == v_1
-<a name="line-200"></a>		       then ( traceMsg 2 ( "get HTTP via "
-<a name="line-201"></a>					   ++ show ( "curl "
-<a name="line-202"></a>						     ++ (if null proxy then "" else "--proxy " ++ proxy)
-<a name="line-203"></a>						     ++ (if null curlOpt then "" else " " ++ curlOpt)
-<a name="line-204"></a>						     ++ " " ++ uri
-<a name="line-205"></a>						   )
-<a name="line-206"></a>					 )
-<a name="line-207"></a>			      &gt;&gt;&gt;
-<a name="line-208"></a>			      arrIO0 ( CURL.getCont curlOpt uri proxy )
-<a name="line-209"></a>			    )
-<a name="line-210"></a>		       else arrIO0 ( HTTP.getCont         uri proxy )
-<a name="line-211"></a>		     )
-<a name="line-212"></a>		     &gt;&gt;&gt;
-<a name="line-213"></a>		     ( arr addError
-<a name="line-214"></a>		       |||
-<a name="line-215"></a>		       arr addContent
-<a name="line-216"></a>		     )
-<a name="line-217"></a>		   )
-<a name="line-218"></a>	    where
-<a name="line-219"></a>	    proxy   = lookup1 a_proxy        options
-<a name="line-220"></a>	    curl    = lookup1 a_use_curl     options
-<a name="line-221"></a>	    curlOpt = lookup1 a_options_curl options
-<a name="line-222"></a>-}</span>
-<a name="line-223"></a>
-<a name="line-224"></a>      <span class='varid'>addContent</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-225"></a>      <span class='varid'>addContent</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-226"></a>	  <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-227"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-228"></a>	    <span class='varid'>seqA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addAttr</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-229"></a>
-<a name="line-230"></a><a name="getURIContents"></a><span class='definition'>getURIContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-231"></a><span class='definition'>getURIContents</span>
-<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>getContentsFromString</span>
-<a name="line-233"></a>      <span class='varop'>`orElse`</span>
-<a name="line-234"></a>      <span class='varid'>getContentsFromDoc</span>
-<a name="line-235"></a>    <span class='keyword'>where</span>
-<a name="line-236"></a>    <span class='varid'>getContentsFromString</span>
-<a name="line-237"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
-<a name="line-238"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-239"></a>	    <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isPrefixOf</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span>
-<a name="line-240"></a>	  <span class='layout'>)</span>
-<a name="line-241"></a>	  <span class='varop'>`guards`</span>
-<a name="line-242"></a>	  <span class='varid'>getStringContents</span>
-<a name="line-243"></a>	  
-<a name="line-244"></a>    <span class='varid'>getContentsFromDoc</span>
-<a name="line-245"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>addTransferURI</span> <span class='varop'>$&lt;</span> <span class='varid'>getBaseURI</span>
-<a name="line-246"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-247"></a>	      <span class='varid'>getCont</span>
-<a name="line-248"></a>	    <span class='layout'>)</span>
-<a name="line-249"></a>	    <span class='varop'>`when`</span>
-<a name="line-250"></a>	    <span class='layout'>(</span> <span class='varid'>setAbsURI</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
-<a name="line-251"></a>			     <span class='varop'>&gt;&gt;^</span>
-<a name="line-252"></a>			     <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>src</span><span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>src</span> <span class='keyword'>then</span> <span class='str'>"stdin:"</span> <span class='keyword'>else</span> <span class='varid'>src</span><span class='layout'>)</span> <span class='layout'>)</span>	<span class='comment'>-- empty document name -&gt; read from stdin</span>
-<a name="line-253"></a>			   <span class='layout'>)</span>
-<a name="line-254"></a>	    <span class='layout'>)</span>
-<a name="line-255"></a>	  <span class='layout'>)</span>
-<a name="line-256"></a>          <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-257"></a>          <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"getURIContents"</span>
-<a name="line-258"></a>
-<a name="line-259"></a>    <span class='varid'>setAbsURI</span> <span class='varid'>src</span>
-<a name="line-260"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>src</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>changeBaseURI</span> <span class='layout'>)</span>
-<a name="line-261"></a>	  <span class='varid'>this</span>
-<a name="line-262"></a>	  <span class='layout'>(</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"illegal URI : "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span><span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-263"></a>
-<a name="line-264"></a>    <span class='varid'>addTransferURI</span> <span class='varid'>uri</span>
-<a name="line-265"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='varid'>uri</span>
-<a name="line-266"></a>
-<a name="line-267"></a>    <span class='varid'>getCont</span>
-<a name="line-268"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span>				<span class='comment'>-- compute the handler and call it</span>
-<a name="line-269"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-270"></a>		   <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"getURIContents: reading "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
-<a name="line-271"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-272"></a>		   <span class='varid'>getSchemeFromURI</span>
-<a name="line-273"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-274"></a>		   <span class='varid'>getProtocolHandler</span>
-<a name="line-275"></a>		 <span class='layout'>)</span>
-<a name="line-276"></a>	  <span class='varop'>`orElse`</span>
-<a name="line-277"></a>	  <span class='varid'>this</span>						<span class='comment'>-- don't change tree, when no handler can be found</span>
-<a name="line-278"></a>	  
-<a name="line-279"></a><a name="setBaseURIFromDoc"></a><span class='definition'>setBaseURIFromDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-280"></a><span class='definition'>setBaseURIFromDoc</span>
-<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
-<a name="line-282"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-283"></a>		<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isPrefixOf</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span>		<span class='comment'>-- do not change base URI when reading from a string</span>
-<a name="line-284"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-285"></a>		<span class='varid'>setBaseURI</span>
-<a name="line-286"></a>	      <span class='layout'>)</span>
-<a name="line-287"></a>
-<a name="line-288"></a><span class='comment'>{- |
-<a name="line-289"></a>   Read the content of a document.
-<a name="line-290"></a>
-<a name="line-291"></a>   This routine is usually called from 'Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents'.
-<a name="line-292"></a>
-<a name="line-293"></a>   The input must be a root node (constructed with 'Text.XML.HXT.Arrow.XmlArrow.root'), usually without children.
-<a name="line-294"></a>   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...
-<a name="line-295"></a>   If the source name is empty, the input is read from standard input.
-<a name="line-296"></a>
-<a name="line-297"></a>   The source is transformed into an absolute URI. If the source is a relative URI, or a file name,
-<a name="line-298"></a>   it is expanded into an absolut URI with respect to the current base URI.
-<a name="line-299"></a>   The default base URI is of protocol \"file\" and points to the current working directory.
+<a name="line-126"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-127"></a>	       <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"read file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>" (strict input = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>b</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span>
+<a name="line-128"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-129"></a>	       <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getCont</span><span class='layout'>)</span>
+<a name="line-130"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-131"></a>	       <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>		<span class='comment'>-- io error occured</span>
+<a name="line-132"></a>		 <span class='varop'>|||</span>
+<a name="line-133"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>	<span class='comment'>-- content read</span>
+<a name="line-134"></a>	       <span class='layout'>)</span>
+<a name="line-135"></a>	     <span class='layout'>)</span>
+<a name="line-136"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-137"></a>      <span class='varid'>addMimeType</span>
+<a name="line-138"></a>
+<a name="line-139"></a><a name="getStdinContents"></a><span class='definition'>getStdinContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-140"></a><span class='definition'>getStdinContents</span>
+<a name="line-141"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span>  <span class='varid'>getAttrValue</span>  <span class='varid'>a_strict_input</span>
+<a name="line-142"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-143"></a>		<span class='varid'>arr</span> <span class='varid'>isTrueValue</span>
+<a name="line-144"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-145"></a>		<span class='varid'>arrIO</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getStdinCont</span>
+<a name="line-146"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-147"></a>	       <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>		<span class='comment'>-- io error occured</span>
+<a name="line-148"></a>		 <span class='varop'>|||</span>
+<a name="line-149"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>	<span class='comment'>-- content read</span>
+<a name="line-150"></a>	       <span class='layout'>)</span>
+<a name="line-151"></a>	     <span class='layout'>)</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="addError"></a><span class='definition'>addError</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-154"></a><span class='definition'>addError</span> <span class='varid'>e</span>
+<a name="line-155"></a>    <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='varid'>e</span>
+<a name="line-156"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-157"></a>      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>
+<a name="line-158"></a>
+<a name="line-159"></a><a name="addMimeType"></a><span class='definition'>addMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-160"></a><span class='definition'>addMimeType</span>
+<a name="line-161"></a>    <span class='keyglyph'>=</span> <span class='varid'>addMime</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-162"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-163"></a>		   <span class='layout'>(</span> <span class='varid'>uriToMime</span> <span class='varop'>$&lt;</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_mimeTypes</span> <span class='layout'>)</span>
+<a name="line-164"></a>		 <span class='layout'>)</span>
+<a name="line-165"></a>    <span class='keyword'>where</span>
+<a name="line-166"></a>    <span class='varid'>addMime</span> <span class='varid'>mt</span>
+<a name="line-167"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferMimeType</span> <span class='varid'>mt</span>
+<a name="line-168"></a>    <span class='varid'>uriToMime</span> <span class='varid'>mtt</span>
+<a name="line-169"></a>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>extensionToMimeType</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>takeExtension</span> <span class='varop'>$</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varid'>mtt</span> <span class='layout'>)</span>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="addTxtContent"></a><span class='definition'>addTxtContent</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-172"></a><span class='definition'>addTxtContent</span> <span class='varid'>c</span>
+<a name="line-173"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-174"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-175"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>
+<a name="line-176"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-177"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="getHttpContents"></a><span class='definition'>getHttpContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-180"></a><span class='definition'>getHttpContents</span>
+<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='varid'>getCont</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-182"></a>		    <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-183"></a>		    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrlAsAssoc</span>	<span class='comment'>-- get all attributes of root node</span>
+<a name="line-184"></a>			<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-185"></a>			<span class='varid'>getAllParamsString</span>	<span class='comment'>-- get all system params</span>
+<a name="line-186"></a>		      <span class='layout'>)</span>
+<a name="line-187"></a>		      <span class='varop'>&gt;&gt;^</span> <span class='varid'>uncurry</span> <span class='varid'>addEntries</span>	<span class='comment'>-- merge them, attributes overwrite system params</span>
+<a name="line-188"></a>		    <span class='layout'>)</span>
+<a name="line-189"></a>		  <span class='layout'>)</span>
+<a name="line-190"></a>      <span class='keyword'>where</span>
+<a name="line-191"></a>      <span class='varid'>getAttrlAsAssoc</span>				<span class='comment'>-- get the attributes as assoc list</span>
+<a name="line-192"></a>	  <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span>
+<a name="line-193"></a>		    <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>
+<a name="line-194"></a>			  <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-195"></a>			  <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-196"></a>			<span class='layout'>)</span>
+<a name="line-197"></a>		  <span class='layout'>)</span>
+<a name="line-198"></a>
+<a name="line-199"></a>      <span class='varid'>getCont</span> <span class='varid'>uri</span> <span class='varid'>options</span>
+<a name="line-200"></a>	  <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"get HTTP via libcurl, uri="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>" options="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>options</span> <span class='layout'>)</span>
+<a name="line-201"></a>		       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-202"></a>		       <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='conid'>LibCURL</span><span class='varop'>.</span><span class='varid'>getCont</span> <span class='varid'>options</span> <span class='varid'>uri</span> <span class='layout'>)</span>
+<a name="line-203"></a>		     <span class='layout'>)</span>
+<a name="line-204"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-205"></a>		     <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>
+<a name="line-206"></a>		       <span class='varop'>|||</span>
+<a name="line-207"></a>		       <span class='varid'>arr</span> <span class='varid'>addContent</span>
+<a name="line-208"></a>		     <span class='layout'>)</span>
+<a name="line-209"></a>		   <span class='layout'>)</span>
+<a name="line-210"></a>		    
+<a name="line-211"></a><span class='comment'>{- old stuff
+<a name="line-212"></a>	  = applyA ( ( if curl == v_1
+<a name="line-213"></a>		       then ( traceMsg 2 ( "get HTTP via "
+<a name="line-214"></a>					   ++ show ( "curl "
+<a name="line-215"></a>						     ++ (if null proxy then "" else "--proxy " ++ proxy)
+<a name="line-216"></a>						     ++ (if null curlOpt then "" else " " ++ curlOpt)
+<a name="line-217"></a>						     ++ " " ++ uri
+<a name="line-218"></a>						   )
+<a name="line-219"></a>					 )
+<a name="line-220"></a>			      &gt;&gt;&gt;
+<a name="line-221"></a>			      arrIO0 ( CURL.getCont curlOpt uri proxy )
+<a name="line-222"></a>			    )
+<a name="line-223"></a>		       else arrIO0 ( HTTP.getCont         uri proxy )
+<a name="line-224"></a>		     )
+<a name="line-225"></a>		     &gt;&gt;&gt;
+<a name="line-226"></a>		     ( arr addError
+<a name="line-227"></a>		       |||
+<a name="line-228"></a>		       arr addContent
+<a name="line-229"></a>		     )
+<a name="line-230"></a>		   )
+<a name="line-231"></a>	    where
+<a name="line-232"></a>	    proxy   = lookup1 a_proxy        options
+<a name="line-233"></a>	    curl    = lookup1 a_use_curl     options
+<a name="line-234"></a>	    curlOpt = lookup1 a_options_curl options
+<a name="line-235"></a>-}</span>
+<a name="line-236"></a>
+<a name="line-237"></a>      <span class='varid'>addContent</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-238"></a>      <span class='varid'>addContent</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-239"></a>	  <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-240"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-241"></a>	    <span class='varid'>seqA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addAttr</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-242"></a>
+<a name="line-243"></a><a name="getURIContents"></a><span class='definition'>getURIContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-244"></a><span class='definition'>getURIContents</span>
+<a name="line-245"></a>    <span class='keyglyph'>=</span> <span class='varid'>getContentsFromString</span>
+<a name="line-246"></a>      <span class='varop'>`orElse`</span>
+<a name="line-247"></a>      <span class='varid'>getContentsFromDoc</span>
+<a name="line-248"></a>    <span class='keyword'>where</span>
+<a name="line-249"></a>    <span class='varid'>getContentsFromString</span>
+<a name="line-250"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
+<a name="line-251"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-252"></a>	    <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isPrefixOf</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span>
+<a name="line-253"></a>	  <span class='layout'>)</span>
+<a name="line-254"></a>	  <span class='varop'>`guards`</span>
+<a name="line-255"></a>	  <span class='varid'>getStringContents</span>
+<a name="line-256"></a>	  
+<a name="line-257"></a>    <span class='varid'>getContentsFromDoc</span>
+<a name="line-258"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>addTransferURI</span> <span class='varop'>$&lt;</span> <span class='varid'>getBaseURI</span>
+<a name="line-259"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-260"></a>	      <span class='varid'>getCont</span>
+<a name="line-261"></a>	    <span class='layout'>)</span>
+<a name="line-262"></a>	    <span class='varop'>`when`</span>
+<a name="line-263"></a>	    <span class='layout'>(</span> <span class='varid'>setAbsURI</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
+<a name="line-264"></a>			     <span class='varop'>&gt;&gt;^</span>
+<a name="line-265"></a>			     <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>src</span><span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>src</span> <span class='keyword'>then</span> <span class='str'>"stdin:"</span> <span class='keyword'>else</span> <span class='varid'>src</span><span class='layout'>)</span> <span class='layout'>)</span>	<span class='comment'>-- empty document name -&gt; read from stdin</span>
+<a name="line-266"></a>			   <span class='layout'>)</span>
+<a name="line-267"></a>	    <span class='layout'>)</span>
+<a name="line-268"></a>	  <span class='layout'>)</span>
+<a name="line-269"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-270"></a>          <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"getURIContents"</span>
+<a name="line-271"></a>
+<a name="line-272"></a>    <span class='varid'>setAbsURI</span> <span class='varid'>src</span>
+<a name="line-273"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>src</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>changeBaseURI</span> <span class='layout'>)</span>
+<a name="line-274"></a>	  <span class='varid'>this</span>
+<a name="line-275"></a>	  <span class='layout'>(</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"illegal URI : "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-276"></a>
+<a name="line-277"></a>    <span class='varid'>addTransferURI</span> <span class='varid'>uri</span>
+<a name="line-278"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='varid'>uri</span>
+<a name="line-279"></a>
+<a name="line-280"></a>    <span class='varid'>getCont</span>
+<a name="line-281"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span>				<span class='comment'>-- compute the handler and call it</span>
+<a name="line-282"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-283"></a>		   <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"getURIContents: reading "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-284"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-285"></a>		   <span class='varid'>getSchemeFromURI</span>
+<a name="line-286"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-287"></a>		   <span class='varid'>getProtocolHandler</span>
+<a name="line-288"></a>		 <span class='layout'>)</span>
+<a name="line-289"></a>	  <span class='varop'>`orElse`</span>
+<a name="line-290"></a>	  <span class='varid'>this</span>						<span class='comment'>-- don't change tree, when no handler can be found</span>
+<a name="line-291"></a>	  
+<a name="line-292"></a><a name="setBaseURIFromDoc"></a><span class='definition'>setBaseURIFromDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-293"></a><span class='definition'>setBaseURIFromDoc</span>
+<a name="line-294"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-295"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-296"></a>		<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isPrefixOf</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span>		<span class='comment'>-- do not change base URI when reading from a string</span>
+<a name="line-297"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-298"></a>		<span class='varid'>setBaseURI</span>
+<a name="line-299"></a>	      <span class='layout'>)</span>
 <a name="line-300"></a>
-<a name="line-301"></a>   The currently supported protocols are \"http\", \"file\", \"stdin\" and \"string\".
-<a name="line-302"></a>
-<a name="line-303"></a>   The latter two are internal protocols. An uri of the form \"stdin:\" stands for the content of
-<a name="line-304"></a>   the standard input stream.
+<a name="line-301"></a><span class='comment'>{- |
+<a name="line-302"></a>   Read the content of a document.
+<a name="line-303"></a>
+<a name="line-304"></a>   This routine is usually called from 'Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents'.
 <a name="line-305"></a>
-<a name="line-306"></a>   \"string:some text\" means, that \"some text\" is taken as input.
-<a name="line-307"></a>   This internal protocol is used for reading from normal 'String' values.
-<a name="line-308"></a>
-<a name="line-309"></a>-}</span>
-<a name="line-310"></a>
-<a name="line-311"></a><a name="getXmlContents"></a><span class='definition'>getXmlContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-312"></a><span class='definition'>getXmlContents</span>
-<a name="line-313"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlDocEncodingSpec</span>
-<a name="line-314"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-315"></a>      <span class='varid'>setBaseURIFromDoc</span>
-<a name="line-316"></a>
-<a name="line-317"></a><a name="getXmlEntityContents"></a><span class='definition'>getXmlEntityContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-318"></a><span class='definition'>getXmlEntityContents</span>
-<a name="line-319"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
-<a name="line-320"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-321"></a>      <span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span>
-<a name="line-322"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-323"></a>      <span class='varid'>setBaseURIFromDoc</span>
-<a name="line-324"></a>
-<a name="line-325"></a><a name="getXmlContents'"></a><span class='definition'>getXmlContents'</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-326"></a><span class='definition'>getXmlContents'</span> <span class='varid'>parseEncodingSpec</span>
-<a name="line-327"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getURIContents</span>
-<a name="line-328"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-329"></a>	<span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>parseEncodingSpec</span>
-<a name="line-330"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-331"></a>	    <span class='varid'>filterErrorMsg</span>
-<a name="line-332"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-333"></a>	    <span class='varid'>decodeDocument</span>
-<a name="line-334"></a>	  <span class='layout'>)</span>
-<a name="line-335"></a>	  <span class='varop'>`when`</span>
-<a name="line-336"></a>	  <span class='varid'>isXmlHtml</span>
-<a name="line-337"></a>	<span class='layout'>)</span>
-<a name="line-338"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-339"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
-<a name="line-340"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-341"></a>		  <span class='varid'>traceString</span> <span class='num'>1</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"getXmlContents: content read and decoded for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
-<a name="line-342"></a>		<span class='layout'>)</span>
-<a name="line-343"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-344"></a>	<span class='varid'>traceTree</span>
-<a name="line-345"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-346"></a>	<span class='varid'>traceSource</span>
-<a name="line-347"></a>      <span class='layout'>)</span>
-<a name="line-348"></a>      <span class='varop'>`when`</span>
-<a name="line-349"></a>      <span class='varid'>isRoot</span>
-<a name="line-350"></a>    <span class='keyword'>where</span>
-<a name="line-351"></a>    <span class='varid'>isXmlHtml</span>
-<a name="line-352"></a>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span>
-<a name="line-353"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-354"></a>	  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>mt</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mt</span> <span class='varop'>||</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mt</span><span class='layout'>)</span>
-<a name="line-355"></a>
-<a name="line-356"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-357"></a>
-<a name="line-358"></a><a name="getEncoding"></a><span class='definition'>getEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
-<a name="line-359"></a><span class='definition'>getEncoding</span>
-<a name="line-360"></a>    <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>			<span class='comment'>-- 1. guess: guess encoding by looking at the first few bytes</span>
-<a name="line-361"></a>	     <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-362"></a>	     <span class='varid'>arr</span> <span class='varid'>guessEncoding</span>
-<a name="line-363"></a>	   <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferEncoding</span>	<span class='comment'>-- 2. guess: take the transfer encoding</span>
-<a name="line-364"></a>	   <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span>		<span class='comment'>-- 4. guess: take encoding parameter in root node</span>
-<a name="line-365"></a>	   <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_encoding</span>		<span class='comment'>-- 5. guess: take encoding parameter in global state</span>
-<a name="line-366"></a>	   <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>
-<a name="line-367"></a>	   <span class='keyglyph'>]</span>
-<a name="line-368"></a>      <span class='varop'>&gt;.</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='comment'>-- make the filter deterministic: take 1. entry from list of guesses</span>
-<a name="line-369"></a>
+<a name="line-306"></a>   The input must be a root node (constructed with 'Text.XML.HXT.Arrow.XmlArrow.root'), usually without children.
+<a name="line-307"></a>   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...
+<a name="line-308"></a>   If the source name is empty, the input is read from standard input.
+<a name="line-309"></a>
+<a name="line-310"></a>   The source is transformed into an absolute URI. If the source is a relative URI, or a file name,
+<a name="line-311"></a>   it is expanded into an absolut URI with respect to the current base URI.
+<a name="line-312"></a>   The default base URI is of protocol \"file\" and points to the current working directory.
+<a name="line-313"></a>
+<a name="line-314"></a>   The currently supported protocols are \"http\", \"file\", \"stdin\" and \"string\".
+<a name="line-315"></a>
+<a name="line-316"></a>   The latter two are internal protocols. An uri of the form \"stdin:\" stands for the content of
+<a name="line-317"></a>   the standard input stream.
+<a name="line-318"></a>
+<a name="line-319"></a>   \"string:some text\" means, that \"some text\" is taken as input.
+<a name="line-320"></a>   This internal protocol is used for reading from normal 'String' values.
+<a name="line-321"></a>
+<a name="line-322"></a>-}</span>
+<a name="line-323"></a>
+<a name="line-324"></a><a name="getXmlContents"></a><span class='definition'>getXmlContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-325"></a><span class='definition'>getXmlContents</span>
+<a name="line-326"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-327"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-328"></a>      <span class='varid'>setBaseURIFromDoc</span>
+<a name="line-329"></a>
+<a name="line-330"></a><a name="getXmlEntityContents"></a><span class='definition'>getXmlEntityContents</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-331"></a><span class='definition'>getXmlEntityContents</span>
+<a name="line-332"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-333"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-334"></a>      <span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span>
+<a name="line-335"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-336"></a>      <span class='varid'>setBaseURIFromDoc</span>
+<a name="line-337"></a>
+<a name="line-338"></a><a name="getXmlContents'"></a><span class='definition'>getXmlContents'</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-339"></a><span class='definition'>getXmlContents'</span> <span class='varid'>parseEncodingSpec</span>
+<a name="line-340"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getURIContents</span>
+<a name="line-341"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-342"></a>	<span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>parseEncodingSpec</span>
+<a name="line-343"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-344"></a>	    <span class='varid'>filterErrorMsg</span>
+<a name="line-345"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-346"></a>	    <span class='varid'>decodeDocument</span>
+<a name="line-347"></a>	  <span class='layout'>)</span>
+<a name="line-348"></a>	  <span class='varop'>`when`</span>
+<a name="line-349"></a>	  <span class='varid'>isXmlHtml</span>
+<a name="line-350"></a>	<span class='layout'>)</span>
+<a name="line-351"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-352"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-353"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-354"></a>		  <span class='varid'>traceValue</span> <span class='num'>1</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"getXmlContents: content read and decoded for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-355"></a>		<span class='layout'>)</span>
+<a name="line-356"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-357"></a>	<span class='varid'>traceTree</span>
+<a name="line-358"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-359"></a>	<span class='varid'>traceSource</span>
+<a name="line-360"></a>      <span class='layout'>)</span>
+<a name="line-361"></a>      <span class='varop'>`when`</span>
+<a name="line-362"></a>      <span class='varid'>isRoot</span>
+<a name="line-363"></a>    <span class='keyword'>where</span>
+<a name="line-364"></a>    <span class='varid'>isXmlHtml</span>
+<a name="line-365"></a>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span>
+<a name="line-366"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-367"></a>	  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>mt</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mt</span> <span class='varop'>||</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mt</span><span class='layout'>)</span>
+<a name="line-368"></a>
+<a name="line-369"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-370"></a>
-<a name="line-371"></a><a name="decodeDocument"></a><span class='definition'>decodeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-372"></a><span class='definition'>decodeDocument</span>
-<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>decodeArr</span> <span class='varop'>$&lt;</span> <span class='varid'>getEncoding</span> <span class='layout'>)</span>
-<a name="line-374"></a>      <span class='varop'>`when`</span>
-<a name="line-375"></a>      <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isXmlOrHtmlDoc</span> <span class='layout'>)</span>
-<a name="line-376"></a>    <span class='keyword'>where</span>
-<a name="line-377"></a>    <span class='varid'>isXmlOrHtmlDoc</span>
-<a name="line-378"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>)</span>
-<a name="line-379"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-380"></a>	  <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>null</span> <span class='varid'>t</span> <span class='varop'>||</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>t</span> <span class='varop'>||</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>t</span><span class='layout'>)</span>
-<a name="line-381"></a>
-<a name="line-382"></a>    <span class='varid'>decodeArr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-383"></a>    <span class='varid'>decodeArr</span> <span class='varid'>enc</span>
-<a name="line-384"></a>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>getDecodingFct</span> <span class='varop'>$</span> <span class='varid'>enc</span>
-<a name="line-385"></a>	<span class='keyword'>where</span>
-<a name="line-386"></a>	<span class='varid'>found</span> <span class='varid'>df</span>
-<a name="line-387"></a>	    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"decodeDocument: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
-<a name="line-388"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-389"></a>	      <span class='layout'>(</span> <span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_ignore_encoding_errors</span> <span class='layout'>)</span>
-<a name="line-390"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-391"></a>	      <span class='varid'>addAttr</span> <span class='varid'>transferEncoding</span> <span class='varid'>enc</span>
-<a name="line-392"></a>
-<a name="line-393"></a>	<span class='varid'>notFound</span>
-<a name="line-394"></a>	    <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"encoding scheme not supported: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
-<a name="line-395"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-396"></a>	      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"decoding document"</span>
-<a name="line-397"></a>
-<a name="line-398"></a>	<span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varid'>ignoreErrs</span>
-<a name="line-399"></a>	    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>
-<a name="line-400"></a>	      <span class='layout'>(</span> <span class='varid'>getText</span>							<span class='comment'>-- get the document content</span>
-<a name="line-401"></a>		<span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>df</span>						<span class='comment'>-- decode the text, result is (string, [errMsg])</span>
-<a name="line-402"></a>		<span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>normalizeNL</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span> <span class='layout'>)</span>		<span class='comment'>-- take decoded string, normalize newline and build text node</span>
-<a name="line-403"></a>		      <span class='varop'>&lt;+&gt;</span>
-<a name="line-404"></a>		      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isTrueValue</span> <span class='varid'>ignoreErrs</span>
-<a name="line-405"></a>			<span class='keyword'>then</span> <span class='varid'>none</span>					<span class='comment'>-- encoding errors are ignored</span>
-<a name="line-406"></a>			<span class='keyword'>else</span>
-<a name="line-407"></a>			<span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>snd</span>					<span class='comment'>-- take the error messages</span>
-<a name="line-408"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-409"></a>			  <span class='varid'>arr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>enc</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>" encoding error"</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='comment'>-- prefix with enc error</span>
-<a name="line-410"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-411"></a>			  <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>issueErr</span><span class='layout'>)</span>				<span class='comment'>-- build issueErr arrow and apply</span>
-<a name="line-412"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-413"></a>			  <span class='varid'>none</span>						<span class='comment'>-- neccessary for type match with &lt;+&gt;</span>
-<a name="line-414"></a>			<span class='layout'>)</span>
-<a name="line-415"></a>		      <span class='layout'>)</span>
-<a name="line-416"></a>		    <span class='layout'>)</span>
-<a name="line-417"></a>	      <span class='layout'>)</span>
-<a name="line-418"></a>      
-<a name="line-419"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-371"></a><a name="getEncoding"></a><span class='definition'>getEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-372"></a><span class='definition'>getEncoding</span>
+<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>			<span class='comment'>-- 1. guess: guess encoding by looking at the first few bytes</span>
+<a name="line-374"></a>	     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-375"></a>	     <span class='varid'>arr</span> <span class='varid'>guessEncoding</span>
+<a name="line-376"></a>	   <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferEncoding</span>	<span class='comment'>-- 2. guess: take the transfer encoding</span>
+<a name="line-377"></a>	   <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span>		<span class='comment'>-- 4. guess: take encoding parameter in root node</span>
+<a name="line-378"></a>	   <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_encoding</span>		<span class='comment'>-- 5. guess: take encoding parameter in global state</span>
+<a name="line-379"></a>	   <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>
+<a name="line-380"></a>	   <span class='keyglyph'>]</span>
+<a name="line-381"></a>      <span class='varop'>&gt;.</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='comment'>-- make the filter deterministic: take 1. entry from list of guesses</span>
+<a name="line-382"></a>
+<a name="line-383"></a>
+<a name="line-384"></a><a name="decodeDocument"></a><span class='definition'>decodeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-385"></a><span class='definition'>decodeDocument</span>
+<a name="line-386"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>decodeArr</span> <span class='varop'>$&lt;</span> <span class='varid'>getEncoding</span> <span class='layout'>)</span>
+<a name="line-387"></a>      <span class='varop'>`when`</span>
+<a name="line-388"></a>      <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isXmlOrHtmlDoc</span> <span class='layout'>)</span>
+<a name="line-389"></a>    <span class='keyword'>where</span>
+<a name="line-390"></a>    <span class='varid'>isXmlOrHtmlDoc</span>
+<a name="line-391"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>)</span>
+<a name="line-392"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-393"></a>	  <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>null</span> <span class='varid'>t</span> <span class='varop'>||</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>t</span> <span class='varop'>||</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-394"></a>
+<a name="line-395"></a>    <span class='varid'>decodeArr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-396"></a>    <span class='varid'>decodeArr</span> <span class='varid'>enc</span>
+<a name="line-397"></a>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>getDecodingFct</span> <span class='varop'>$</span> <span class='varid'>enc</span>
+<a name="line-398"></a>	<span class='keyword'>where</span>
+<a name="line-399"></a>	<span class='varid'>found</span> <span class='varid'>df</span>
+<a name="line-400"></a>	    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"decodeDocument: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
+<a name="line-401"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-402"></a>	      <span class='layout'>(</span> <span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_ignore_encoding_errors</span> <span class='layout'>)</span>
+<a name="line-403"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-404"></a>	      <span class='varid'>addAttr</span> <span class='varid'>transferEncoding</span> <span class='varid'>enc</span>
+<a name="line-405"></a>
+<a name="line-406"></a>	<span class='varid'>notFound</span>
+<a name="line-407"></a>	    <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"encoding scheme not supported: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
+<a name="line-408"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-409"></a>	      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"decoding document"</span>
+<a name="line-410"></a>
+<a name="line-411"></a>	<span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varid'>ignoreErrs</span>
+<a name="line-412"></a>	    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>
+<a name="line-413"></a>	      <span class='layout'>(</span> <span class='varid'>getText</span>							<span class='comment'>-- get the document content</span>
+<a name="line-414"></a>		<span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>df</span>						<span class='comment'>-- decode the text, result is (string, [errMsg])</span>
+<a name="line-415"></a>		<span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>normalizeNL</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span> <span class='layout'>)</span>		<span class='comment'>-- take decoded string, normalize newline and build text node</span>
+<a name="line-416"></a>		      <span class='varop'>&lt;+&gt;</span>
+<a name="line-417"></a>		      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isTrueValue</span> <span class='varid'>ignoreErrs</span>
+<a name="line-418"></a>			<span class='keyword'>then</span> <span class='varid'>none</span>					<span class='comment'>-- encoding errors are ignored</span>
+<a name="line-419"></a>			<span class='keyword'>else</span>
+<a name="line-420"></a>			<span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>snd</span>					<span class='comment'>-- take the error messages</span>
+<a name="line-421"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-422"></a>			  <span class='varid'>arr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>enc</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>" encoding error"</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='comment'>-- prefix with enc error</span>
+<a name="line-423"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-424"></a>			  <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>issueErr</span><span class='layout'>)</span>				<span class='comment'>-- build issueErr arrow and apply</span>
+<a name="line-425"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-426"></a>			  <span class='varid'>none</span>						<span class='comment'>-- neccessary for type match with &lt;+&gt;</span>
+<a name="line-427"></a>			<span class='layout'>)</span>
+<a name="line-428"></a>		      <span class='layout'>)</span>
+<a name="line-429"></a>		    <span class='layout'>)</span>
+<a name="line-430"></a>	      <span class='layout'>)</span>
+<a name="line-431"></a>      
+<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html
@@ -6,172 +6,184 @@
 <link type='text/css' rel='stylesheet' href='hscolour.css' />
 </head>
 <body>
-<pre><a name="line-1"></a><span class='comment'>-- |</span>
-<a name="line-2"></a><span class='comment'>-- state arrows for document output</span>
-<a name="line-3"></a><span class='comment'>--</span>
-<a name="line-4"></a><span class='comment'>-- version: $Id: DocumentOutput.hs,v 1.7 2006/11/02 09:34:08 hxml Exp $</span>
-<a name="line-5"></a>
-<a name="line-6"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>
-<a name="line-7"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span> <span class='layout'>)</span>
-<a name="line-8"></a><span class='keyword'>where</span>
-<a name="line-9"></a>
-<a name="line-10"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
-<a name="line-11"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
-<a name="line-14"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>
+<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2"></a>
+<a name="line-3"></a><span class='comment'>{- |
+<a name="line-4"></a>   Module     : Text.XML.HXT.Arrow.DocumentOutput
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-9 Uwe Schmidt
+<a name="line-6"></a>   License    : MIT
+<a name="line-7"></a>
+<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-9"></a>   Stability  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   State arrows for document output
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
 <a name="line-15"></a>
-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
-<a name="line-17"></a>    <span class='layout'>(</span> <span class='varid'>getOutputEncodingFct</span> <span class='layout'>)</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-20"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
-<a name="line-22"></a>
-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
-<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>
-<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>
-<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>
-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>
-<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-30"></a>    <span class='layout'>)</span>
-<a name="line-31"></a>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-33"></a>
-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
-<a name="line-35"></a>    <span class='layout'>(</span> <span class='conid'>Handle</span>
-<a name="line-36"></a>    <span class='layout'>,</span> <span class='conid'>IOMode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>openFile</span>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>hPutStrLn</span>
-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>hClose</span>
-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>stdout</span>
-<a name="line-41"></a>    <span class='layout'>)</span>
-<a name="line-42"></a>
-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span>
-<a name="line-44"></a>    <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>)</span>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span> <span class='layout'>)</span>
+<a name="line-20"></a><span class='keyword'>where</span>
+<a name="line-21"></a>
+<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
+<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
+<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
+<a name="line-29"></a>    <span class='layout'>(</span> <span class='varid'>getOutputEncodingFct</span> <span class='layout'>)</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-42"></a>    <span class='layout'>)</span>
+<a name="line-43"></a>
+<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
 <a name="line-45"></a>
-<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-47"></a><span class='comment'>--</span>
-<a name="line-48"></a><span class='comment'>-- output arrows</span>
-<a name="line-49"></a>
-<a name="line-50"></a><a name="putXmlDocument"></a><span class='definition'>putXmlDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-51"></a><span class='definition'>putXmlDocument</span> <span class='varid'>dst</span>
-<a name="line-52"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
-<a name="line-53"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-54"></a>		<span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>hPutDocument</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>h</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>hPutStrLn</span> <span class='varid'>h</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-55"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-56"></a>		<span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"io error, document not written to "</span> <span class='varop'>++</span> <span class='varid'>outFile</span><span class='layout'>)</span>
-<a name="line-57"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-58"></a>		    <span class='varid'>arr</span> <span class='varid'>show</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_fatal</span>
-<a name="line-59"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-60"></a>		    <span class='varid'>filterErrorMsg</span>
-<a name="line-61"></a>		  <span class='layout'>)</span>
-<a name="line-62"></a>		  <span class='varop'>|||</span>
-<a name="line-63"></a>		  <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"document written to "</span> <span class='varop'>++</span> <span class='varid'>outFile</span><span class='layout'>)</span>
-<a name="line-64"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-65"></a>		    <span class='varid'>none</span>
-<a name="line-66"></a>		  <span class='layout'>)</span>
-<a name="line-67"></a>		<span class='layout'>)</span>
-<a name="line-68"></a>	      <span class='layout'>)</span>
-<a name="line-69"></a>      <span class='keyword'>where</span>
-<a name="line-70"></a>      <span class='varid'>isStdout</span>	<span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>dst</span> <span class='varop'>||</span> <span class='varid'>dst</span> <span class='varop'>==</span> <span class='str'>"-"</span>
-<a name="line-71"></a>
-<a name="line-72"></a>      <span class='varid'>outFile</span>	<span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isStdout</span>
-<a name="line-73"></a>		  <span class='keyword'>then</span> <span class='str'>"stdout"</span>
-<a name="line-74"></a>		       <span class='keyword'>else</span> <span class='varid'>show</span> <span class='varid'>dst</span>
-<a name="line-75"></a>
-<a name="line-76"></a>      <span class='varid'>hPutDocument</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Handle</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span>
-<a name="line-77"></a>      <span class='varid'>hPutDocument</span> <span class='varid'>action</span>
-<a name="line-78"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isStdout</span>
-<a name="line-79"></a>	      <span class='keyglyph'>=</span> <span class='varid'>action</span> <span class='varid'>stdout</span>
-<a name="line-80"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-81"></a>	      <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-82"></a>		<span class='varid'>handle</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>dst</span> <span class='conid'>WriteMode</span>
-<a name="line-83"></a>		<span class='varid'>action</span> <span class='varid'>handle</span>
-<a name="line-84"></a>		<span class='varid'>hClose</span> <span class='varid'>handle</span>
-<a name="line-85"></a>
-<a name="line-86"></a><span class='comment'>-- |</span>
-<a name="line-87"></a><span class='comment'>-- write the tree representation of a document to a file</span>
-<a name="line-88"></a>
-<a name="line-89"></a><a name="putXmlTree"></a><span class='definition'>putXmlTree</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-90"></a><span class='definition'>putXmlTree</span> <span class='varid'>dst</span>
-<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-92"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-93"></a>		<span class='varid'>addHeadlineToXmlDoc</span>
-<a name="line-94"></a>	        <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-95"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>
-<a name="line-96"></a>	      <span class='layout'>)</span>
+<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-47"></a>    <span class='layout'>(</span> <span class='conid'>Handle</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='conid'>IOMode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>openFile</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>hPutStrLn</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>hClose</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>stdout</span>
+<a name="line-53"></a>    <span class='layout'>)</span>
+<a name="line-54"></a>
+<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span>
+<a name="line-56"></a>    <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>)</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-59"></a><span class='comment'>--</span>
+<a name="line-60"></a><span class='comment'>-- output arrows</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="putXmlDocument"></a><span class='definition'>putXmlDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-63"></a><span class='definition'>putXmlDocument</span> <span class='varid'>dst</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-65"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-66"></a>		<span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>hPutDocument</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>h</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>hPutStrLn</span> <span class='varid'>h</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-67"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-68"></a>		<span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"io error, document not written to "</span> <span class='varop'>++</span> <span class='varid'>outFile</span><span class='layout'>)</span>
+<a name="line-69"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-70"></a>		    <span class='varid'>arr</span> <span class='varid'>show</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_fatal</span>
+<a name="line-71"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-72"></a>		    <span class='varid'>filterErrorMsg</span>
+<a name="line-73"></a>		  <span class='layout'>)</span>
+<a name="line-74"></a>		  <span class='varop'>|||</span>
+<a name="line-75"></a>		  <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"document written to "</span> <span class='varop'>++</span> <span class='varid'>outFile</span><span class='layout'>)</span>
+<a name="line-76"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-77"></a>		    <span class='varid'>none</span>
+<a name="line-78"></a>		  <span class='layout'>)</span>
+<a name="line-79"></a>		<span class='layout'>)</span>
+<a name="line-80"></a>	      <span class='layout'>)</span>
+<a name="line-81"></a>      <span class='keyword'>where</span>
+<a name="line-82"></a>      <span class='varid'>isStdout</span>	<span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>dst</span> <span class='varop'>||</span> <span class='varid'>dst</span> <span class='varop'>==</span> <span class='str'>"-"</span>
+<a name="line-83"></a>
+<a name="line-84"></a>      <span class='varid'>outFile</span>	<span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isStdout</span>
+<a name="line-85"></a>		  <span class='keyword'>then</span> <span class='str'>"stdout"</span>
+<a name="line-86"></a>		       <span class='keyword'>else</span> <span class='varid'>show</span> <span class='varid'>dst</span>
+<a name="line-87"></a>
+<a name="line-88"></a>      <span class='varid'>hPutDocument</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Handle</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span>
+<a name="line-89"></a>      <span class='varid'>hPutDocument</span> <span class='varid'>action</span>
+<a name="line-90"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isStdout</span>
+<a name="line-91"></a>	      <span class='keyglyph'>=</span> <span class='varid'>action</span> <span class='varid'>stdout</span>
+<a name="line-92"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-93"></a>	      <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-94"></a>		<span class='varid'>handle</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>dst</span> <span class='conid'>WriteMode</span>
+<a name="line-95"></a>		<span class='varid'>action</span> <span class='varid'>handle</span>
+<a name="line-96"></a>		<span class='varid'>hClose</span> <span class='varid'>handle</span>
 <a name="line-97"></a>
 <a name="line-98"></a><span class='comment'>-- |</span>
-<a name="line-99"></a><span class='comment'>-- write a document with indentaion and line numers</span>
+<a name="line-99"></a><span class='comment'>-- write the tree representation of a document to a file</span>
 <a name="line-100"></a>
-<a name="line-101"></a><a name="putXmlSource"></a><span class='definition'>putXmlSource</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-102"></a><span class='definition'>putXmlSource</span> <span class='varid'>dst</span>
-<a name="line-103"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>this</span> <span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>isRoot</span>
+<a name="line-101"></a><a name="putXmlTree"></a><span class='definition'>putXmlTree</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-102"></a><span class='definition'>putXmlTree</span> <span class='varid'>dst</span>
+<a name="line-103"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>
 <a name="line-104"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-105"></a>		<span class='varid'>indentDoc</span>
-<a name="line-106"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-107"></a>		<span class='varid'>numberLinesInXmlDoc</span>
-<a name="line-108"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-109"></a>		<span class='varid'>addHeadlineToXmlDoc</span>
-<a name="line-110"></a>	        <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-111"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>
-<a name="line-112"></a>	      <span class='layout'>)</span>
-<a name="line-113"></a>
-<a name="line-114"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-115"></a>
-<a name="line-116"></a><a name="getOutputEncoding"></a><span class='definition'>getOutputEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
-<a name="line-117"></a><span class='definition'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>
-<a name="line-118"></a>    <span class='keyglyph'>=</span>  <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getChildren</span>			<span class='comment'>-- 1. guess: evaluate &lt;?xml ... encoding="..."?&gt;</span>
-<a name="line-119"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-120"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>
-<a name="line-121"></a>		<span class='varop'>`guards`</span>
-<a name="line-122"></a>		<span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span>
-<a name="line-123"></a>	      <span class='layout'>)</span>
-<a name="line-124"></a>	    <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>defaultEnc</span>			<span class='comment'>-- 2. guess: explicit parameter, may be ""</span>
-<a name="line-125"></a>	    <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_output_encoding</span>	<span class='comment'>-- 3. guess: take output encoding parameter in root node</span>
-<a name="line-126"></a>	    <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_output_encoding</span>	<span class='comment'>-- 4. guess: take output encoding parameter in global state</span>
-<a name="line-127"></a>	    <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_encoding</span>		<span class='comment'>-- 5. guess: take encoding parameter in global state</span>
-<a name="line-128"></a>	    <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>
-<a name="line-129"></a>	    <span class='keyglyph'>]</span>
-<a name="line-130"></a>      <span class='varop'>&gt;.</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='comment'>-- make the filter deterministic: take 1. entry from list of guesses</span>
-<a name="line-131"></a>
-<a name="line-132"></a><a name="encodeDocument"></a><span class='definition'>encodeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-133"></a><span class='definition'>encodeDocument</span> <span class='varid'>supressXmlPi</span> <span class='varid'>defaultEnc</span>
-<a name="line-134"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>
-<a name="line-135"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-136"></a>	       <span class='varid'>arr</span> <span class='varid'>encArr</span>
-<a name="line-137"></a>	     <span class='layout'>)</span>
-<a name="line-138"></a>      <span class='varop'>`when`</span>
-<a name="line-139"></a>      <span class='varid'>isRoot</span>
-<a name="line-140"></a>    <span class='keyword'>where</span>
-<a name="line-141"></a>    <span class='varid'>encArr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-142"></a>    <span class='varid'>encArr</span> <span class='varid'>enc</span>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>getOutputEncodingFct</span> <span class='varop'>$</span> <span class='varid'>enc</span>
-<a name="line-143"></a>	<span class='keyword'>where</span>
-<a name="line-144"></a>	<span class='varid'>found</span> <span class='varid'>ef</span> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"encodeDocument: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
-<a name="line-145"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-146"></a>		   <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>supressXmlPi</span>
-<a name="line-147"></a>		     <span class='keyword'>then</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>
-<a name="line-148"></a>		     <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>addXmlPi</span>
-<a name="line-149"></a>			    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-150"></a>			    <span class='varid'>addXmlPiEncoding</span> <span class='varid'>enc</span>
-<a name="line-151"></a>			  <span class='layout'>)</span>
-<a name="line-152"></a>		   <span class='layout'>)</span>
-<a name="line-153"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-154"></a>		   <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
-<a name="line-155"></a>				     <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-156"></a>				     <span class='varid'>arr</span> <span class='varid'>ef</span>
-<a name="line-157"></a>				     <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-158"></a>				     <span class='varid'>mkText</span>
-<a name="line-159"></a>				   <span class='layout'>)</span>
-<a name="line-160"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-161"></a>		   <span class='varid'>addAttr</span> <span class='varid'>a_output_encoding</span> <span class='varid'>enc</span>
-<a name="line-162"></a>
-<a name="line-163"></a>	<span class='varid'>notFound</span> <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"encoding scheme not supported: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
-<a name="line-164"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-165"></a>		   <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"encoding document"</span>
-<a name="line-166"></a>
-<a name="line-167"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-105"></a>		<span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-106"></a>	        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-107"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>
+<a name="line-108"></a>	      <span class='layout'>)</span>
+<a name="line-109"></a>
+<a name="line-110"></a><span class='comment'>-- |</span>
+<a name="line-111"></a><span class='comment'>-- write a document with indentaion and line numers</span>
+<a name="line-112"></a>
+<a name="line-113"></a><a name="putXmlSource"></a><span class='definition'>putXmlSource</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-114"></a><span class='definition'>putXmlSource</span> <span class='varid'>dst</span>
+<a name="line-115"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>this</span> <span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>isRoot</span>
+<a name="line-116"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-117"></a>		<span class='varid'>indentDoc</span>
+<a name="line-118"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-119"></a>		<span class='varid'>numberLinesInXmlDoc</span>
+<a name="line-120"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-121"></a>		<span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-122"></a>	        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-123"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>
+<a name="line-124"></a>	      <span class='layout'>)</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="getOutputEncoding"></a><span class='definition'>getOutputEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-129"></a><span class='definition'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span>  <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getChildren</span>			<span class='comment'>-- 1. guess: evaluate &lt;?xml ... encoding="..."?&gt;</span>
+<a name="line-131"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>
+<a name="line-133"></a>		<span class='varop'>`guards`</span>
+<a name="line-134"></a>		<span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span>
+<a name="line-135"></a>	      <span class='layout'>)</span>
+<a name="line-136"></a>	    <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>defaultEnc</span>			<span class='comment'>-- 2. guess: explicit parameter, may be ""</span>
+<a name="line-137"></a>	    <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_output_encoding</span>	<span class='comment'>-- 3. guess: take output encoding parameter in root node</span>
+<a name="line-138"></a>	    <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_output_encoding</span>	<span class='comment'>-- 4. guess: take output encoding parameter in global state</span>
+<a name="line-139"></a>	    <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_encoding</span>		<span class='comment'>-- 5. guess: take encoding parameter in global state</span>
+<a name="line-140"></a>	    <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>
+<a name="line-141"></a>	    <span class='keyglyph'>]</span>
+<a name="line-142"></a>      <span class='varop'>&gt;.</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='comment'>-- make the filter deterministic: take 1. entry from list of guesses</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="encodeDocument"></a><span class='definition'>encodeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-145"></a><span class='definition'>encodeDocument</span> <span class='varid'>supressXmlPi</span> <span class='varid'>defaultEnc</span>
+<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>
+<a name="line-147"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-148"></a>	       <span class='varid'>arr</span> <span class='varid'>encArr</span>
+<a name="line-149"></a>	     <span class='layout'>)</span>
+<a name="line-150"></a>      <span class='varop'>`when`</span>
+<a name="line-151"></a>      <span class='varid'>isRoot</span>
+<a name="line-152"></a>    <span class='keyword'>where</span>
+<a name="line-153"></a>    <span class='varid'>encArr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-154"></a>    <span class='varid'>encArr</span> <span class='varid'>enc</span>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>getOutputEncodingFct</span> <span class='varop'>$</span> <span class='varid'>enc</span>
+<a name="line-155"></a>	<span class='keyword'>where</span>
+<a name="line-156"></a>	<span class='varid'>found</span> <span class='varid'>ef</span> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"encodeDocument: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
+<a name="line-157"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-158"></a>		   <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>supressXmlPi</span>
+<a name="line-159"></a>		     <span class='keyword'>then</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>
+<a name="line-160"></a>		     <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>addXmlPi</span>
+<a name="line-161"></a>			    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-162"></a>			    <span class='varid'>addXmlPiEncoding</span> <span class='varid'>enc</span>
+<a name="line-163"></a>			  <span class='layout'>)</span>
+<a name="line-164"></a>		   <span class='layout'>)</span>
+<a name="line-165"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-166"></a>		   <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-167"></a>				     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-168"></a>				     <span class='varid'>arr</span> <span class='varid'>ef</span>
+<a name="line-169"></a>				     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-170"></a>				     <span class='varid'>mkText</span>
+<a name="line-171"></a>				   <span class='layout'>)</span>
+<a name="line-172"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-173"></a>		   <span class='varid'>addAttr</span> <span class='varid'>a_output_encoding</span> <span class='varid'>enc</span>
+<a name="line-174"></a>
+<a name="line-175"></a>	<span class='varid'>notFound</span> <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"encoding scheme not supported: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>
+<a name="line-176"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-177"></a>		   <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"encoding document"</span>
+<a name="line-178"></a>
+<a name="line-179"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html
@@ -10,771 +10,788 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.Arrow.Edit
-<a name="line-5"></a>   Copyright  : Copyright (C) 2006 Uwe Schmidt
-<a name="line-6"></a>   License    : MIT
-<a name="line-7"></a>
-<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-<a name="line-9"></a>   Stability  : stable
-<a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>
-<a name="line-12"></a>   common edit arrows
-<a name="line-13"></a>
-<a name="line-14"></a>-}</span>
-<a name="line-15"></a>
-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-17"></a>
-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
-<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>
-<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeForXPath</span>
-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeContents</span>
-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>collapseAllXText</span>
-<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>collapseXText</span>
-<a name="line-24"></a>
-<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>xshowEscapeXml</span>
-<a name="line-26"></a>
-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>
-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>escapeHtmlDoc</span>
-<a name="line-29"></a>
-<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>
-<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>addHeadlineToXmlDoc</span>
-<a name="line-33"></a>
-<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>
-<a name="line-36"></a> 
-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>removeComment</span>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>removeAllComment</span>
-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>
-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>removeAllWhiteSpace</span>
-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>
-<a name="line-42"></a>
-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>transfCdata</span>
-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCdata</span>
-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>transfCharRef</span>
-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCharRef</span>
-<a name="line-47"></a>
-<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>hasXmlPi</span>
-<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>
-<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>
-<a name="line-51"></a>
-<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>addDoctypeDecl</span>
-<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeStrict</span>
-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>
-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>
-<a name="line-56"></a>    <span class='layout'>)</span>
-<a name="line-57"></a><span class='keyword'>where</span>
-<a name="line-58"></a>
-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
-<a name="line-63"></a>
-<a name="line-64"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
-<a name="line-65"></a>
-<a name="line-66"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-67"></a>
-<a name="line-68"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-69"></a>
-<a name="line-70"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span>
-<a name="line-71"></a>       <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>
-<a name="line-72"></a>
-<a name="line-73"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
-<a name="line-74"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>
-<a name="line-75"></a>
-<a name="line-76"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>
-<a name="line-77"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>
-<a name="line-78"></a>
-<a name="line-79"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>
-<a name="line-80"></a>    <span class='layout'>(</span> <span class='varid'>xmlEntities</span> <span class='layout'>)</span>
-<a name="line-81"></a>
-<a name="line-82"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>
-<a name="line-83"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span> <span class='layout'>)</span>
-<a name="line-84"></a>
-<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-86"></a>
-<a name="line-87"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>
-<a name="line-88"></a>
-<a name="line-89"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-90"></a>
-<a name="line-91"></a><span class='comment'>-- |</span>
-<a name="line-92"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>
-<a name="line-93"></a><span class='comment'>--</span>
-<a name="line-94"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>
-<a name="line-95"></a><span class='comment'>--</span>
-<a name="line-96"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>
-<a name="line-97"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>
-<a name="line-98"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>
-<a name="line-99"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>
-<a name="line-100"></a><span class='comment'>--</span>
-<a name="line-101"></a><span class='comment'>--</span>
-<a name="line-102"></a><span class='comment'>-- Not implemented yet:</span>
-<a name="line-103"></a><span class='comment'>--</span>
-<a name="line-104"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>
-<a name="line-105"></a><span class='comment'>--</span>
-<a name="line-106"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>
-<a name="line-107"></a><span class='comment'>--</span>
-<a name="line-108"></a><span class='comment'>-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'</span>
-<a name="line-109"></a>
-<a name="line-110"></a><a name="canonicalizeTree'"></a><span class='definition'>canonicalizeTree'</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-111"></a><span class='definition'>canonicalizeTree'</span> <span class='varid'>toBeRemoved</span>
-<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isText</span><span class='layout'>)</span>
-<a name="line-113"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-114"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>
-<a name="line-115"></a>      <span class='keyword'>where</span>
-<a name="line-116"></a>      <span class='varid'>canonicalize1Node</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-117"></a>      <span class='varid'>canonicalize1Node</span>
-<a name="line-118"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isPi</span> <span class='varop'>`when`</span> <span class='varid'>isDTD</span><span class='layout'>)</span>		<span class='comment'>-- remove DTD parts, except PIs</span>
-<a name="line-119"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-120"></a>	    <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>toBeRemoved</span><span class='layout'>)</span>		<span class='comment'>-- remove unintersting nodes</span>
-<a name="line-121"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-122"></a>	    <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>transfCharRef</span>
-<a name="line-123"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-124"></a>			     <span class='varid'>collapseXText</span>
-<a name="line-125"></a>			   <span class='layout'>)</span>
-<a name="line-126"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
-<a name="line-127"></a>	    <span class='layout'>)</span>
-<a name="line-128"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-129"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>
-<a name="line-130"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-131"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>
-<a name="line-132"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-133"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>
-<a name="line-134"></a>
-<a name="line-135"></a>
-<a name="line-136"></a><span class='comment'>-- |</span>
-<a name="line-137"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>
-<a name="line-138"></a><span class='comment'>--</span>
-<a name="line-139"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>
-<a name="line-140"></a><span class='comment'>--</span>
-<a name="line-141"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>
-<a name="line-142"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>
-<a name="line-143"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>
-<a name="line-144"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>
-<a name="line-145"></a><span class='comment'>--</span>
-<a name="line-146"></a><span class='comment'>-- Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute</span>
-<a name="line-147"></a><span class='comment'>-- values and text</span>
-<a name="line-148"></a><span class='comment'>--</span>
-<a name="line-149"></a><span class='comment'>-- Not implemented yet:</span>
-<a name="line-150"></a><span class='comment'>--</span>
-<a name="line-151"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>
-<a name="line-152"></a><span class='comment'>--</span>
-<a name="line-153"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>
-<a name="line-154"></a>
-<a name="line-155"></a><a name="canonicalizeAllNodes"></a><span class='definition'>canonicalizeAllNodes</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-156"></a><span class='definition'>canonicalizeAllNodes</span>
-<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-158"></a>      <span class='varid'>canonicalizeTree'</span> <span class='layout'>(</span> <span class='varid'>isCmt</span>		<span class='comment'>-- remove comment</span>
-<a name="line-159"></a>			  <span class='varop'>&lt;+&gt;</span>
-<a name="line-160"></a>			  <span class='varid'>isXmlPi</span>	<span class='comment'>-- remove xml declaration</span>
-<a name="line-161"></a>			<span class='layout'>)</span>
-<a name="line-162"></a>
-<a name="line-163"></a><span class='comment'>-- |</span>
-<a name="line-164"></a><span class='comment'>-- Canonicalize a tree for XPath</span>
-<a name="line-165"></a><span class='comment'>-- Like 'canonicalizeAllNodes' but comment nodes are not removed</span>
-<a name="line-166"></a><span class='comment'>--</span>
-<a name="line-167"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>
-<a name="line-168"></a>
-<a name="line-169"></a><a name="canonicalizeForXPath"></a><span class='definition'>canonicalizeForXPath</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-170"></a><span class='definition'>canonicalizeForXPath</span>
-<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-172"></a>      <span class='varid'>canonicalizeTree'</span> <span class='varid'>isXmlPi</span>
-<a name="line-173"></a>
-<a name="line-174"></a><span class='comment'>-- |</span>
-<a name="line-175"></a><span class='comment'>-- Canonicalize the contents of a document</span>
-<a name="line-176"></a><span class='comment'>--</span>
-<a name="line-177"></a><span class='comment'>-- substitutes all char refs in text and attribute values,</span>
-<a name="line-178"></a><span class='comment'>-- removes CDATA section and combines all sequences of resulting text</span>
-<a name="line-179"></a><span class='comment'>-- nodes into a single text node</span>
-<a name="line-180"></a><span class='comment'>--</span>
-<a name="line-181"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>
-<a name="line-182"></a>
-<a name="line-183"></a><a name="canonicalizeContents"></a><span class='definition'>canonicalizeContents</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-184"></a><span class='definition'>canonicalizeContents</span>
-<a name="line-185"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-186"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>
-<a name="line-187"></a>      <span class='keyword'>where</span>
-<a name="line-188"></a>      <span class='varid'>canonicalize1Node</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-189"></a>      <span class='varid'>canonicalize1Node</span>
-<a name="line-190"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>transfCharRef</span>
-<a name="line-191"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-192"></a>			     <span class='varid'>collapseXText</span>
-<a name="line-193"></a>			   <span class='layout'>)</span>
-<a name="line-194"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
-<a name="line-195"></a>	    <span class='layout'>)</span>
-<a name="line-196"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-197"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>
-<a name="line-198"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-199"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>
-<a name="line-200"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-201"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>
-<a name="line-202"></a>
-<a name="line-203"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-204"></a>
-<a name="line-205"></a><a name="collapseXText'"></a><span class='definition'>collapseXText'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-206"></a><span class='definition'>collapseXText'</span>
-<a name="line-207"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='varid'>mergeText'</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-208"></a>    <span class='keyword'>where</span>
-<a name="line-209"></a>    <span class='varid'>mergeText'</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
-<a name="line-210"></a>    <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='layout'>(</span><span class='varid'>t2</span> <span class='conop'>:</span> <span class='varid'>ts2</span><span class='layout'>)</span>
-<a name="line-211"></a>	<span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t1</span> <span class='varop'>&amp;&amp;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t2</span>
-<a name="line-212"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>let</span>
-<a name="line-213"></a>	      <span class='varid'>s1</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t1</span>
-<a name="line-214"></a>	      <span class='varid'>s2</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t2</span>
-<a name="line-215"></a>	      <span class='varid'>t</span>  <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='varop'>++</span> <span class='varid'>s2</span><span class='layout'>)</span>
-<a name="line-216"></a>	      <span class='keyword'>in</span>
-<a name="line-217"></a>	      <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>ts2</span>
-<a name="line-218"></a>    <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='varid'>ts</span>
-<a name="line-219"></a>	<span class='keyglyph'>=</span> <span class='varid'>t1</span> <span class='conop'>:</span> <span class='varid'>ts</span>
-<a name="line-220"></a>
-<a name="line-221"></a><span class='comment'>-- |</span>
-<a name="line-222"></a><span class='comment'>-- Collects sequences of text nodes in the list of children of a node into one single text node.</span>
-<a name="line-223"></a><span class='comment'>-- This is useful, e.g. after char and entity reference substitution</span>
-<a name="line-224"></a>
-<a name="line-225"></a><a name="collapseXText"></a><span class='definition'>collapseXText</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-226"></a><span class='definition'>collapseXText</span>
-<a name="line-227"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-228"></a>      <span class='varid'>collapseXText'</span>
-<a name="line-229"></a>
-<a name="line-230"></a><span class='comment'>-- |</span>
-<a name="line-231"></a><span class='comment'>-- Applies collapseXText recursively.</span>
-<a name="line-232"></a><span class='comment'>--</span>
-<a name="line-233"></a><span class='comment'>--</span>
-<a name="line-234"></a><span class='comment'>-- see also : 'collapseXText'</span>
-<a name="line-235"></a>
-<a name="line-236"></a><a name="collapseAllXText"></a><span class='definition'>collapseAllXText</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-237"></a><span class='definition'>collapseAllXText</span>
-<a name="line-238"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-239"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>collapseXText'</span>
-<a name="line-240"></a>
-<a name="line-241"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-242"></a>
-<a name="line-243"></a><span class='comment'>-- | apply an arrow to the input and convert the resulting XML trees into an XML escaped string</span>
-<a name="line-244"></a><span class='comment'>--</span>
-<a name="line-245"></a><span class='comment'>-- This is a save variant for converting a tree into an XML string representation that is parsable with 'Text.XML.HXT.Arrow.ReadDocument'.</span>
-<a name="line-246"></a><span class='comment'>-- It is implemented with 'Text.XML.HXT.Arrow.XmlArrow.xshow', but xshow does no XML escaping. The XML escaping is done with</span>
-<a name="line-247"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.escapeXmlDoc' before xshow is applied.</span>
-<a name="line-248"></a><span class='comment'>--</span>
-<a name="line-249"></a><span class='comment'>-- So the following law holds</span>
-<a name="line-250"></a><span class='comment'>--</span>
-<a name="line-251"></a><span class='comment'>-- &gt; xshowEscape f &gt;&gt;&gt; xread == f</span>
-<a name="line-252"></a>
-<a name="line-253"></a><a name="xshowEscapeXml"></a><span class='definition'>xshowEscapeXml</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>String</span>
-<a name="line-254"></a><span class='definition'>xshowEscapeXml</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>escapeXmlDoc</span><span class='layout'>)</span>
-<a name="line-255"></a>
-<a name="line-256"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-257"></a>
-<a name="line-258"></a><span class='comment'>-- |</span>
-<a name="line-259"></a><span class='comment'>-- escape XmlText,</span>
-<a name="line-260"></a><span class='comment'>-- transform all special XML chars into char- or entity- refs</span>
-<a name="line-261"></a>
-<a name="line-262"></a><a name="EntityRefTable"></a><span class='keyword'>type</span> <span class='conid'>EntityRefTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>Int</span> <span class='conid'>String</span>
-<a name="line-263"></a>
-<a name="line-264"></a><a name="xmlEntityRefTable"></a><span class='definition'>xmlEntityRefTable</span>
-<a name="line-265"></a> <span class='layout'>,</span> <span class='varid'>xhtmlEntityRefTable</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span>
-<a name="line-266"></a>
-<a name="line-267"></a><span class='definition'>xmlEntityRefTable</span>   <span class='keyglyph'>=</span> <span class='varid'>buildEntityRefTable</span> <span class='varop'>$</span> <span class='varid'>xmlEntities</span>
-<a name="line-268"></a><a name="xhtmlEntityRefTable"></a><span class='definition'>xhtmlEntityRefTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildEntityRefTable</span> <span class='varop'>$</span> <span class='varid'>xhtmlEntities</span>
-<a name="line-269"></a>
-<a name="line-270"></a><a name="buildEntityRefTable"></a><span class='definition'>buildEntityRefTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>EntityRefTable</span>
-<a name="line-271"></a><span class='definition'>buildEntityRefTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span><span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-272"></a>
-<a name="line-273"></a><a name="escapeText''"></a><span class='definition'>escapeText''</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
-<a name="line-274"></a><span class='definition'>escapeText''</span> <span class='varid'>escChar</span> <span class='varid'>isEsc</span> <span class='varid'>t</span>
-<a name="line-275"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='varid'>escape'</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t</span>
-<a name="line-276"></a>    <span class='keyword'>where</span>
-<a name="line-277"></a>    <span class='varid'>escape'</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>		<span class='comment'>-- empty text nodes remain empty text nodes</span>
-<a name="line-278"></a>    <span class='varid'>escape'</span> <span class='varid'>s</span>  <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>s</span>	<span class='comment'>-- they do not disapear</span>
-<a name="line-279"></a>
-<a name="line-280"></a>    <span class='varid'>escape</span> <span class='str'>""</span>
-<a name="line-281"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-282"></a>    <span class='varid'>escape</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>s1</span><span class='layout'>)</span>
-<a name="line-283"></a>	<span class='keyglyph'>|</span> <span class='varid'>isEsc</span> <span class='varid'>c</span>
-<a name="line-284"></a>	    <span class='keyglyph'>=</span> <span class='varid'>escChar</span> <span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>escape</span> <span class='varid'>s1</span>
-<a name="line-285"></a>    <span class='varid'>escape</span> <span class='varid'>s</span>
-<a name="line-286"></a>	<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>escape</span> <span class='varid'>s2</span>
-<a name="line-287"></a>	<span class='keyword'>where</span>
-<a name="line-288"></a>	<span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>break</span> <span class='varid'>isEsc</span> <span class='varid'>s</span>
-<a name="line-289"></a>
-<a name="line-290"></a><span class='comment'>{-
-<a name="line-291"></a>escapeCharRef	:: Char -&gt; XmlTree
-<a name="line-292"></a>escapeCharRef	= XN.mkCharRef . fromEnum
-<a name="line-293"></a>-}</span>
-<a name="line-294"></a>
-<a name="line-295"></a><a name="escapeEntityRef"></a><span class='definition'>escapeEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-296"></a><span class='definition'>escapeEntityRef</span> <span class='varid'>entityTable</span> <span class='varid'>c</span>
-<a name="line-297"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span> <span class='varid'>c'</span><span class='layout'>)</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span> <span class='varop'>.</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>c'</span> <span class='varop'>$</span> <span class='varid'>entityTable</span>
-<a name="line-298"></a>    <span class='keyword'>where</span>
-<a name="line-299"></a>    <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>
-<a name="line-300"></a>
-<a name="line-301"></a><a name="escapeXmlEntityRef"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-302"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xmlEntityRefTable</span>
-<a name="line-303"></a>
-<a name="line-304"></a><a name="escapeHtmlEntityRef"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-305"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xhtmlEntityRefTable</span>
-<a name="line-306"></a>
-<a name="line-307"></a><span class='comment'>-- |</span>
-<a name="line-308"></a><span class='comment'>-- escape all special XML chars into XML entity references or char references</span>
-<a name="line-309"></a><span class='comment'>--</span>
-<a name="line-310"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; in text nodes into prefefiened XML entity references,</span>
-<a name="line-311"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>
-<a name="line-312"></a><span class='comment'>-- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).</span>
-<a name="line-313"></a>
-<a name="line-314"></a><a name="escapeXmlDoc"></a><span class='definition'>escapeXmlDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-315"></a><span class='definition'>escapeXmlDoc</span>
-<a name="line-316"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>escapeDoc</span> <span class='varid'>escXmlText</span> <span class='varid'>escXmlAttrValue</span>
-<a name="line-317"></a>    <span class='keyword'>where</span>
-<a name="line-318"></a>    <span class='varid'>escXmlText</span>
-<a name="line-319"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeXmlEntityRef</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"&lt;&amp;"</span><span class='layout'>)</span>		<span class='comment'>-- no escape for ", ' and &gt; required: XML standard 2.4</span>
-<a name="line-320"></a>    <span class='varid'>escXmlAttrValue</span>
-<a name="line-321"></a>        <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeXmlEntityRef</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"&lt;&gt;\"\'&amp;\n\r\t"</span><span class='layout'>)</span>
-<a name="line-322"></a>
-<a name="line-323"></a>
-<a name="line-324"></a><span class='comment'>-- |</span>
-<a name="line-325"></a><span class='comment'>-- escape all special HTML chars into XHTML entity references or char references</span>
-<a name="line-326"></a><span class='comment'>--</span>
-<a name="line-327"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,</span>
-<a name="line-328"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>
-<a name="line-329"></a><span class='comment'>-- in comments nothing is converted</span>
-<a name="line-330"></a>
-<a name="line-331"></a><a name="escapeHtmlDoc"></a><span class='definition'>escapeHtmlDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-332"></a><span class='definition'>escapeHtmlDoc</span>
-<a name="line-333"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>escapeDoc</span> <span class='varid'>escHtmlText</span> <span class='varid'>escHtmlAttrValue</span>
-<a name="line-334"></a>    <span class='keyword'>where</span>
-<a name="line-335"></a>    <span class='varid'>escHtmlText</span>
-<a name="line-336"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlTextEsc</span>
-<a name="line-337"></a>    <span class='varid'>escHtmlAttrValue</span>
-<a name="line-338"></a>        <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlAttrEsc</span>
-<a name="line-339"></a>
-<a name="line-340"></a>    <span class='varid'>isHtmlTextEsc</span> <span class='varid'>c</span>
-<a name="line-341"></a>	<span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='varid'>toEnum</span><span class='layout'>(</span><span class='num'>128</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"&lt;&amp;"</span> <span class='layout'>)</span>
-<a name="line-342"></a>    <span class='varid'>isHtmlAttrEsc</span> <span class='varid'>c</span>
-<a name="line-343"></a>	<span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='varid'>toEnum</span><span class='layout'>(</span><span class='num'>128</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"&lt;&gt;\"\'&amp;\n\r\t"</span> <span class='layout'>)</span>
-<a name="line-344"></a>
-<a name="line-345"></a><a name="escapeDoc"></a><span class='definition'>escapeDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-346"></a><span class='definition'>escapeDoc</span> <span class='varid'>escText</span> <span class='varid'>escAttr</span>
-<a name="line-347"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span>
-<a name="line-348"></a>    <span class='keyword'>where</span>
-<a name="line-349"></a>    <span class='varid'>escape</span>
-<a name="line-350"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
-<a name="line-351"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isElem</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>escape</span>
-<a name="line-352"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-353"></a>			  <span class='varid'>processAttrl</span> <span class='varid'>escVal</span>
-<a name="line-354"></a>			<span class='layout'>)</span>
-<a name="line-355"></a>	  <span class='layout'>,</span> <span class='varid'>isText</span>  <span class='conop'>:-&gt;</span> <span class='varid'>escText</span>
-<a name="line-356"></a>	  <span class='comment'>-- , isCmt   :-&gt; escCmt</span>
-<a name="line-357"></a>	  <span class='layout'>,</span> <span class='varid'>isDTD</span>   <span class='conop'>:-&gt;</span> <span class='varid'>processTopDown</span> <span class='varid'>escDTD</span>
-<a name="line-358"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>    <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
-<a name="line-359"></a>	  <span class='keyglyph'>]</span>
-<a name="line-360"></a>    <span class='varid'>escVal</span>   <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>escAttr</span>
-<a name="line-361"></a>    <span class='varid'>escDTD</span>   <span class='keyglyph'>=</span> <span class='varid'>escVal</span> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>isDTDEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='layout'>)</span>
-<a name="line-362"></a>
-<a name="line-363"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-364"></a>
-<a name="line-365"></a><span class='comment'>-- |</span>
-<a name="line-366"></a><span class='comment'>-- convert a document into a Haskell representation (with show).</span>
-<a name="line-367"></a><span class='comment'>--</span>
-<a name="line-368"></a><span class='comment'>-- Useful for debugging and trace output.</span>
-<a name="line-369"></a><span class='comment'>-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'</span>
-<a name="line-370"></a>
-<a name="line-371"></a><a name="haskellRepOfXmlDoc"></a><span class='definition'>haskellRepOfXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-372"></a><span class='definition'>haskellRepOfXmlDoc</span>
-<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-374"></a>      <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>getAttrl</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>show</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>
-<a name="line-375"></a>
-<a name="line-376"></a><span class='comment'>-- |</span>
-<a name="line-377"></a><span class='comment'>-- convert a document into a text and add line numbers to the text representation.</span>
-<a name="line-378"></a><span class='comment'>-- </span>
-<a name="line-379"></a><span class='comment'>-- Result is a root node with a single text node as child.</span>
-<a name="line-380"></a><span class='comment'>-- Useful for debugging and trace output.</span>
-<a name="line-381"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'</span>
-<a name="line-382"></a>
-<a name="line-383"></a><a name="numberLinesInXmlDoc"></a><span class='definition'>numberLinesInXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-384"></a><span class='definition'>numberLinesInXmlDoc</span>
-<a name="line-385"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-386"></a>      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>numberLines</span><span class='layout'>)</span>
-<a name="line-387"></a>    <span class='keyword'>where</span>
-<a name="line-388"></a>    <span class='varid'>numberLines</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-389"></a>    <span class='varid'>numberLines</span> <span class='varid'>str</span>
-<a name="line-390"></a>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>
-<a name="line-391"></a>	  <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>lineNr</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='num'>1</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>str</span><span class='layout'>)</span>
-<a name="line-392"></a>	<span class='keyword'>where</span>
-<a name="line-393"></a>	<span class='varid'>lineNr</span>	 <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-394"></a>	<span class='varid'>lineNr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>6</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>replicate</span> <span class='num'>6</span> <span class='chr'>' '</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"  "</span>
-<a name="line-395"></a>
-<a name="line-396"></a><span class='comment'>-- |</span>
-<a name="line-397"></a><span class='comment'>-- convert a document into a text representation in tree form.</span>
-<a name="line-398"></a><span class='comment'>--</span>
-<a name="line-399"></a><span class='comment'>-- Useful for debugging and trace output.</span>
-<a name="line-400"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'</span>
-<a name="line-401"></a>
-<a name="line-402"></a><a name="treeRepOfXmlDoc"></a><span class='definition'>treeRepOfXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-403"></a><span class='definition'>treeRepOfXmlDoc</span>
-<a name="line-404"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-405"></a>      <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>getAttrl</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>formatXmlTree</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>
-<a name="line-406"></a>
-<a name="line-407"></a><a name="addHeadlineToXmlDoc"></a><span class='definition'>addHeadlineToXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-408"></a><span class='definition'>addHeadlineToXmlDoc</span>
-<a name="line-409"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='varid'>addTitle</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>formatTitle</span><span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-410"></a>    <span class='keyword'>where</span>
-<a name="line-411"></a>    <span class='varid'>addTitle</span> <span class='varid'>str</span>
-<a name="line-412"></a>	<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>str</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span> <span class='layout'>)</span>
-<a name="line-413"></a>    <span class='varid'>formatTitle</span> <span class='varid'>str</span>
-<a name="line-414"></a>	<span class='keyglyph'>=</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>headline</span> <span class='varop'>++</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>underline</span> <span class='varop'>++</span> <span class='str'>"\n\n"</span>
-<a name="line-415"></a>	<span class='keyword'>where</span>
-<a name="line-416"></a>	<span class='varid'>headline</span>  <span class='keyglyph'>=</span> <span class='str'>"content of: "</span> <span class='varop'>++</span> <span class='varid'>str</span>
-<a name="line-417"></a>        <span class='varid'>underline</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='chr'>'='</span><span class='layout'>)</span> <span class='varid'>headline</span>
-<a name="line-418"></a>
-<a name="line-419"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-420"></a>
-<a name="line-421"></a><a name="removeComment'"></a><span class='definition'>removeComment'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-422"></a><span class='definition'>removeComment'</span>		<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isCmt</span>
-<a name="line-423"></a>
-<a name="line-424"></a><span class='comment'>-- |</span>
-<a name="line-425"></a><span class='comment'>-- remove Comments: @none `when` isCmt@</span>
-<a name="line-426"></a>
-<a name="line-427"></a><a name="removeComment"></a><span class='definition'>removeComment</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-428"></a><span class='definition'>removeComment</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeComment'</span>
-<a name="line-429"></a>
-<a name="line-430"></a><span class='comment'>-- |</span>
-<a name="line-431"></a><span class='comment'>-- remove all comments recursively</span>
-<a name="line-432"></a>
-<a name="line-433"></a><a name="removeAllComment"></a><span class='definition'>removeAllComment</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-434"></a><span class='definition'>removeAllComment</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeComment'</span>
-<a name="line-435"></a>
-<a name="line-436"></a><span class='comment'>-- ----------</span>
-<a name="line-437"></a>
-<a name="line-438"></a><a name="removeWhiteSpace'"></a><span class='definition'>removeWhiteSpace'</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-439"></a><span class='definition'>removeWhiteSpace'</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isWhiteSpace</span>
-<a name="line-440"></a>
-<a name="line-441"></a><span class='comment'>-- |</span>
-<a name="line-442"></a><span class='comment'>-- simple filter for removing whitespace.</span>
-<a name="line-443"></a><span class='comment'>--</span>
-<a name="line-444"></a><span class='comment'>-- no check on sigificant whitespace, e.g. in HTML \&lt;pre\&gt;-elements, is done.</span>
-<a name="line-445"></a><span class='comment'>--</span>
-<a name="line-446"></a><span class='comment'>--</span>
-<a name="line-447"></a><span class='comment'>-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'</span>
-<a name="line-448"></a>
-<a name="line-449"></a><a name="removeWhiteSpace"></a><span class='definition'>removeWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-450"></a><span class='definition'>removeWhiteSpace</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeWhiteSpace'</span>
-<a name="line-451"></a>
-<a name="line-452"></a><span class='comment'>-- |</span>
-<a name="line-453"></a><span class='comment'>-- simple recursive filter for removing all whitespace.</span>
-<a name="line-454"></a><span class='comment'>--</span>
-<a name="line-455"></a><span class='comment'>-- removes all text nodes in a tree that consist only of whitespace.</span>
-<a name="line-456"></a><span class='comment'>--</span>
-<a name="line-457"></a><span class='comment'>--</span>
-<a name="line-458"></a><span class='comment'>-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'</span>
-<a name="line-459"></a>
-<a name="line-460"></a><a name="removeAllWhiteSpace"></a><span class='definition'>removeAllWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-461"></a><span class='definition'>removeAllWhiteSpace</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeWhiteSpace'</span>
-<a name="line-462"></a>
-<a name="line-463"></a><span class='comment'>-- |</span>
-<a name="line-464"></a><span class='comment'>-- filter for removing all not significant whitespace.</span>
-<a name="line-465"></a><span class='comment'>--</span>
-<a name="line-466"></a><span class='comment'>-- the tree traversed for removing whitespace between elements,</span>
-<a name="line-467"></a><span class='comment'>-- that was inserted for indentation and readability.</span>
-<a name="line-468"></a><span class='comment'>-- whitespace is only removed at places, where it's not significat</span>
-<a name="line-469"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>
-<a name="line-470"></a><span class='comment'>-- by a tag attribute @xml:space@</span>
-<a name="line-471"></a><span class='comment'>--</span>
-<a name="line-472"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@</span>
-<a name="line-473"></a><span class='comment'>--</span>
-<a name="line-474"></a><span class='comment'>-- input is root node of the document to be cleaned up,</span>
-<a name="line-475"></a><span class='comment'>-- output the semantically equivalent simplified tree</span>
-<a name="line-476"></a><span class='comment'>--</span>
-<a name="line-477"></a><span class='comment'>--</span>
-<a name="line-478"></a><span class='comment'>-- see also : 'indentDoc', 'removeAllWhiteSpace'</span>
-<a name="line-479"></a>
-<a name="line-480"></a><a name="removeDocWhiteSpace"></a><span class='definition'>removeDocWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-481"></a><span class='definition'>removeDocWhiteSpace</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeRootWhiteSpace</span>
-<a name="line-482"></a>
-<a name="line-483"></a>
-<a name="line-484"></a><a name="removeRootWhiteSpace"></a><span class='definition'>removeRootWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-485"></a><span class='definition'>removeRootWhiteSpace</span>
-<a name="line-486"></a>    <span class='keyglyph'>=</span>  <span class='varid'>processChildren</span> <span class='varid'>processRootElement</span>
-<a name="line-487"></a>       <span class='varop'>`when`</span>
-<a name="line-488"></a>       <span class='varid'>isRoot</span>
-<a name="line-489"></a>    <span class='keyword'>where</span>
-<a name="line-490"></a>    <span class='varid'>processRootElement</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-491"></a>    <span class='varid'>processRootElement</span>
-<a name="line-492"></a>	<span class='keyglyph'>=</span> <span class='varid'>removeWhiteSpace</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processChild</span>
-<a name="line-493"></a>	<span class='keyword'>where</span>
-<a name="line-494"></a>	<span class='varid'>processChild</span>
-<a name="line-495"></a>	    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTD</span>
-<a name="line-496"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>removeAllWhiteSpace</span>			<span class='comment'>-- whitespace in DTD is redundant</span>
-<a name="line-497"></a>		      <span class='layout'>,</span> <span class='varid'>this</span>
-<a name="line-498"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
-<a name="line-499"></a>					      <span class='varop'>&gt;&gt;.</span> <span class='varid'>indentTrees</span> <span class='varid'>insertNothing</span> <span class='conid'>False</span> <span class='num'>1</span>
-<a name="line-500"></a>					    <span class='layout'>)</span>
-<a name="line-501"></a>		      <span class='keyglyph'>]</span>
-<a name="line-502"></a>
-<a name="line-503"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-504"></a>
-<a name="line-505"></a><span class='comment'>-- |</span>
-<a name="line-506"></a><span class='comment'>-- filter for indenting a document tree for pretty printing.</span>
-<a name="line-507"></a><span class='comment'>--</span>
-<a name="line-508"></a><span class='comment'>-- the tree is traversed for inserting whitespace for tag indentation.</span>
-<a name="line-509"></a><span class='comment'>--</span>
-<a name="line-510"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it isn't significant,</span>
-<a name="line-511"></a><span class='comment'>-- is's not inserted between tags and text containing non whitespace chars.</span>
-<a name="line-512"></a><span class='comment'>--</span>
-<a name="line-513"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it's not significant.</span>
-<a name="line-514"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>
-<a name="line-515"></a><span class='comment'>-- by a tag attribute @xml:space@</span>
-<a name="line-516"></a><span class='comment'>--</span>
-<a name="line-517"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@.</span>
-<a name="line-518"></a><span class='comment'>--</span>
-<a name="line-519"></a><span class='comment'>-- input is a complete document tree or a document fragment</span>
-<a name="line-520"></a><span class='comment'>-- result is the semantically equivalent formatted tree.</span>
-<a name="line-521"></a><span class='comment'>--</span>
-<a name="line-522"></a><span class='comment'>--</span>
-<a name="line-523"></a><span class='comment'>-- see also : 'removeDocWhiteSpace'</span>
-<a name="line-524"></a>
-<a name="line-525"></a><a name="indentDoc"></a><span class='definition'>indentDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-526"></a><span class='definition'>indentDoc</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-527"></a>			  <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>`guards`</span> <span class='varid'>indentRoot</span> <span class='layout'>)</span>
-<a name="line-528"></a>			    <span class='varop'>`orElse`</span>
-<a name="line-529"></a>			    <span class='layout'>(</span><span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
-<a name="line-530"></a>			  <span class='layout'>)</span>
-<a name="line-531"></a>
-<a name="line-532"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-533"></a>
-<a name="line-534"></a><a name="indentRoot"></a><span class='definition'>indentRoot</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-535"></a><span class='definition'>indentRoot</span>		<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>indentRootChildren</span>
-<a name="line-536"></a>    <span class='keyword'>where</span>
-<a name="line-537"></a>    <span class='varid'>indentRootChildren</span>
-<a name="line-538"></a>	<span class='keyglyph'>=</span> <span class='varid'>removeText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>insertNL</span>
-<a name="line-539"></a>	<span class='keyword'>where</span>
-<a name="line-540"></a>	<span class='varid'>removeText</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isText</span>
-<a name="line-541"></a>	<span class='varid'>insertNL</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span>
-<a name="line-542"></a>	<span class='varid'>indentChild</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
-<a name="line-543"></a>			    <span class='layout'>(</span> <span class='varid'>getChildren</span>
-<a name="line-544"></a>			      <span class='varop'>&gt;&gt;.</span>
-<a name="line-545"></a>			      <span class='varid'>indentTrees</span> <span class='layout'>(</span><span class='varid'>insertIndentation</span> <span class='num'>2</span><span class='layout'>)</span> <span class='conid'>False</span> <span class='num'>1</span>
-<a name="line-546"></a>			    <span class='layout'>)</span>
-<a name="line-547"></a>			    <span class='varop'>`whenNot`</span> <span class='varid'>isDTD</span>
-<a name="line-548"></a>			  <span class='layout'>)</span>
-<a name="line-549"></a>
-<a name="line-550"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-551"></a><span class='comment'>--</span>
-<a name="line-552"></a><span class='comment'>-- copied from EditFilter and rewritten for arrows</span>
-<a name="line-553"></a><span class='comment'>-- to remove dependency to the filter module</span>
-<a name="line-554"></a>
-<a name="line-555"></a><a name="indentTrees"></a><span class='definition'>indentTrees</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
-<a name="line-556"></a><span class='definition'>indentTrees</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span>
-<a name="line-557"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-558"></a><span class='definition'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace</span> <span class='varid'>level</span> <span class='varid'>ts</span>
-<a name="line-559"></a>    <span class='keyglyph'>=</span> <span class='varid'>runLAs</span> <span class='varid'>lsf</span> <span class='varid'>ls</span>
-<a name="line-560"></a>      <span class='varop'>++</span>
-<a name="line-561"></a>      <span class='varid'>indentRest</span> <span class='varid'>rs</span>
-<a name="line-562"></a>      <span class='keyword'>where</span>
-<a name="line-563"></a>      <span class='varid'>runLAs</span> <span class='varid'>f</span> <span class='varid'>l</span>
-<a name="line-564"></a>	  <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>constL</span> <span class='varid'>l</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>undefined</span>
-<a name="line-565"></a>
-<a name="line-566"></a>      <span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span> <span class='varid'>rs</span><span class='layout'>)</span>
-<a name="line-567"></a>	  <span class='keyglyph'>=</span> <span class='varid'>break</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>ts</span>
-<a name="line-568"></a>
-<a name="line-569"></a>      <span class='varid'>isSignificant</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>
-<a name="line-570"></a>      <span class='varid'>isSignificant</span>
-<a name="line-571"></a>	  <span class='keyglyph'>=</span> <span class='varid'>preserveSpace</span>
-<a name="line-572"></a>	    <span class='varop'>||</span>
-<a name="line-573"></a>	    <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLAs</span> <span class='varid'>isSignificantPart</span><span class='layout'>)</span> <span class='varid'>ls</span>
-<a name="line-574"></a>
-<a name="line-575"></a>      <span class='varid'>isSignificantPart</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-576"></a>      <span class='varid'>isSignificantPart</span>
-<a name="line-577"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span>
-<a name="line-578"></a>	    <span class='keyglyph'>[</span> <span class='varid'>isText</span> <span class='varop'>`guards`</span> <span class='varid'>neg</span> <span class='varid'>isWhiteSpace</span>
-<a name="line-579"></a>	    <span class='layout'>,</span> <span class='varid'>isCdata</span>
-<a name="line-580"></a>	    <span class='layout'>,</span> <span class='varid'>isCharRef</span>
-<a name="line-581"></a>	    <span class='layout'>,</span> <span class='varid'>isEntityRef</span>
-<a name="line-582"></a>	    <span class='keyglyph'>]</span>
-<a name="line-583"></a>
-<a name="line-584"></a>      <span class='varid'>lsf</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-585"></a>      <span class='varid'>lsf</span>
-<a name="line-586"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>
-<a name="line-587"></a>	      <span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-588"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-589"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isWhiteSpace</span><span class='layout'>)</span>
-<a name="line-590"></a>                <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-591"></a>                <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='varid'>level</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>this</span><span class='layout'>)</span>
-<a name="line-592"></a>
-<a name="line-593"></a>      <span class='varid'>indentRest</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
-<a name="line-594"></a>      <span class='varid'>indentRest</span> <span class='conid'>[]</span>
-<a name="line-595"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>
-<a name="line-596"></a>	      <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-597"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-598"></a>	      <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='comment'>-</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>undefined</span>
-<a name="line-599"></a>
-<a name="line-600"></a>      <span class='varid'>indentRest</span> <span class='layout'>(</span><span class='varid'>t'</span><span class='conop'>:</span><span class='varid'>ts'</span><span class='layout'>)</span>
-<a name="line-601"></a>	  <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>indentElem</span>
-<a name="line-602"></a>		      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-603"></a>		      <span class='varid'>lsf</span>
-<a name="line-604"></a>		    <span class='layout'>)</span>
-<a name="line-605"></a>		    <span class='varop'>`when`</span> <span class='varid'>isElem</span>
-<a name="line-606"></a>		  <span class='layout'>)</span> <span class='varid'>t'</span>
-<a name="line-607"></a>            <span class='varop'>++</span>
-<a name="line-608"></a>	    <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ts'</span>
-<a name="line-609"></a>	      <span class='keyword'>then</span> <span class='varid'>indentRest</span>
-<a name="line-610"></a>	      <span class='keyword'>else</span> <span class='varid'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace</span> <span class='varid'>level</span>
-<a name="line-611"></a>	    <span class='layout'>)</span> <span class='varid'>ts'</span>
-<a name="line-612"></a>	  <span class='keyword'>where</span>
-<a name="line-613"></a>	  <span class='varid'>indentElem</span>
-<a name="line-614"></a>	      <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>	<span class='layout'>(</span> <span class='varid'>getChildren</span>
-<a name="line-615"></a>				  <span class='varop'>&gt;&gt;.</span>
-<a name="line-616"></a>				  <span class='varid'>indentChildren</span>
-<a name="line-617"></a>				<span class='layout'>)</span>
-<a name="line-618"></a>
-<a name="line-619"></a>	  <span class='varid'>xmlSpaceAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-620"></a>	  <span class='varid'>xmlSpaceAttrValue</span>
-<a name="line-621"></a>	      <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='str'>"xml:space"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>t'</span>
-<a name="line-622"></a>
-<a name="line-623"></a>	  <span class='varid'>preserveSpace'</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>
-<a name="line-624"></a>	  <span class='varid'>preserveSpace'</span>
-<a name="line-625"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>preserveSpace</span>
-<a name="line-626"></a>		  <span class='varop'>.</span>
-<a name="line-627"></a>		  <span class='varid'>lookup</span> <span class='varid'>xmlSpaceAttrValue</span>
-<a name="line-628"></a>	        <span class='layout'>)</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"preserve"</span><span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>
-<a name="line-629"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"default"</span><span class='layout'>,</span>  <span class='conid'>False</span><span class='layout'>)</span>
-<a name="line-630"></a>		  <span class='keyglyph'>]</span>
-<a name="line-631"></a>
-<a name="line-632"></a>	  <span class='varid'>indentChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
-<a name="line-633"></a>	  <span class='varid'>indentChildren</span> <span class='varid'>cs'</span>
-<a name="line-634"></a>	      <span class='keyglyph'>|</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span><span class='layout'>)</span> <span class='varid'>cs'</span>
-<a name="line-635"></a>		  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-636"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-637"></a>		  <span class='keyglyph'>=</span> <span class='varid'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace'</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cs'</span>
-<a name="line-638"></a>
-<a name="line-639"></a>	
-<a name="line-640"></a><span class='comment'>-- filter for indenting elements</span>
-<a name="line-641"></a>
-<a name="line-642"></a><a name="insertIndentation"></a><span class='definition'>insertIndentation</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>
-<a name="line-643"></a><span class='definition'>insertIndentation</span> <span class='varid'>indentWidth</span> <span class='varid'>level</span>
-<a name="line-644"></a>    <span class='keyglyph'>=</span> <span class='varid'>txt</span> <span class='layout'>(</span><span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>replicate</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='varop'>*</span> <span class='varid'>indentWidth</span><span class='layout'>)</span> <span class='chr'>' '</span><span class='layout'>)</span>
-<a name="line-645"></a>
-<a name="line-646"></a><span class='comment'>-- filter for removing all whitespace</span>
-<a name="line-647"></a>
-<a name="line-648"></a><a name="insertNothing"></a><span class='definition'>insertNothing</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>
-<a name="line-649"></a><span class='definition'>insertNothing</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>none</span>
-<a name="line-650"></a>
-<a name="line-651"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-652"></a>
-<a name="line-653"></a><a name="transfCdata'"></a><span class='definition'>transfCdata'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-654"></a><span class='definition'>transfCdata'</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getCdata</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isCdata</span>
-<a name="line-655"></a>
-<a name="line-656"></a><span class='comment'>-- |</span>
-<a name="line-657"></a><span class='comment'>-- converts a CDATA section node into a normal text node</span>
-<a name="line-658"></a>
-<a name="line-659"></a><a name="transfCdata"></a><span class='definition'>transfCdata</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-660"></a><span class='definition'>transfCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-661"></a>			  <span class='varid'>transfCdata'</span>
-<a name="line-662"></a>
-<a name="line-663"></a><span class='comment'>-- |</span>
-<a name="line-664"></a><span class='comment'>-- converts CDATA sections in whole document tree into normal text nodes</span>
-<a name="line-665"></a>
-<a name="line-666"></a><a name="transfAllCdata"></a><span class='definition'>transfAllCdata</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-667"></a><span class='definition'>transfAllCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-668"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCdata'</span>
-<a name="line-669"></a>			  
-<a name="line-670"></a><span class='comment'>--</span>
-<a name="line-671"></a>
-<a name="line-672"></a><a name="transfCharRef'"></a><span class='definition'>transfCharRef'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-673"></a><span class='definition'>transfCharRef'</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getCharRef</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span> <span class='layout'>)</span>
-<a name="line-674"></a>		          <span class='varop'>`when`</span>
-<a name="line-675"></a>			  <span class='varid'>isCharRef</span>
-<a name="line-676"></a>
-<a name="line-677"></a><span class='comment'>-- |</span>
-<a name="line-678"></a><span class='comment'>-- converts character references to normal text</span>
-<a name="line-679"></a>
-<a name="line-680"></a><a name="transfCharRef"></a><span class='definition'>transfCharRef</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-681"></a><span class='definition'>transfCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-682"></a>			  <span class='varid'>transfCharRef'</span>
-<a name="line-683"></a>
-<a name="line-684"></a><span class='comment'>-- |</span>
-<a name="line-685"></a><span class='comment'>-- recursively converts all character references to normal text</span>
-<a name="line-686"></a>
-<a name="line-687"></a><a name="transfAllCharRef"></a><span class='definition'>transfAllCharRef</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-688"></a><span class='definition'>transfAllCharRef</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-689"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCharRef'</span>
-<a name="line-690"></a>
-<a name="line-691"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-692"></a>
-<a name="line-693"></a><a name="hasXmlPi"></a><span class='definition'>hasXmlPi</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-694"></a><span class='definition'>hasXmlPi</span>
-<a name="line-695"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
-<a name="line-696"></a>      <span class='layout'>(</span> <span class='varid'>getChildren</span>
-<a name="line-697"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-698"></a>	<span class='varid'>isPi</span>
-<a name="line-699"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-700"></a>	<span class='varid'>hasName</span> <span class='varid'>t_xml</span>
-<a name="line-701"></a>      <span class='layout'>)</span>
-<a name="line-702"></a>
-<a name="line-703"></a><span class='comment'>-- | add an \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>
-<a name="line-704"></a><span class='comment'>-- if it's not already there</span>
-<a name="line-705"></a>
-<a name="line-706"></a><a name="addXmlPi"></a><span class='definition'>addXmlPi</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-707"></a><span class='definition'>addXmlPi</span>
-<a name="line-708"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
-<a name="line-709"></a>      <span class='layout'>(</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>t_xml</span><span class='layout'>)</span> <span class='varid'>none</span>
-<a name="line-710"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-711"></a>			       <span class='varid'>addAttr</span> <span class='varid'>a_version</span> <span class='str'>"1.0"</span>
-<a name="line-712"></a>			     <span class='layout'>)</span>
-<a name="line-713"></a>			     <span class='varop'>&lt;+&gt;</span>
-<a name="line-714"></a>			     <span class='varid'>txt</span> <span class='str'>"\n"</span>
-<a name="line-715"></a>			   <span class='layout'>)</span>
-<a name="line-716"></a>	<span class='varop'>`whenNot`</span>
-<a name="line-717"></a>	<span class='varid'>hasXmlPi</span>
-<a name="line-718"></a>      <span class='layout'>)</span>
-<a name="line-719"></a>
-<a name="line-720"></a><span class='comment'>-- | add an encoding spec to the \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>
-<a name="line-721"></a>
-<a name="line-722"></a><a name="addXmlPiEncoding"></a><span class='definition'>addXmlPiEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-723"></a><span class='definition'>addXmlPiEncoding</span> <span class='varid'>enc</span>
-<a name="line-724"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-725"></a>      <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>a_encoding</span> <span class='varid'>enc</span>
-<a name="line-726"></a>		        <span class='varop'>`when`</span>
-<a name="line-727"></a>			<span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>
-<a name="line-728"></a>		      <span class='layout'>)</span>
-<a name="line-729"></a>
-<a name="line-730"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>
-<a name="line-731"></a>
-<a name="line-732"></a><a name="addXHtmlDoctypeStrict"></a><span class='definition'>addXHtmlDoctypeStrict</span>
-<a name="line-733"></a>  <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>
-<a name="line-734"></a>  <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-735"></a>
-<a name="line-736"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>
-<a name="line-737"></a>
-<a name="line-738"></a><span class='definition'>addXHtmlDoctypeStrict</span>
-<a name="line-739"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Strict//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span>
-<a name="line-740"></a>
-<a name="line-741"></a><span class='comment'>-- | add an XHTML transitional doctype declaration to a document</span>
-<a name="line-742"></a>
-<a name="line-743"></a><a name="addXHtmlDoctypeTransitional"></a><span class='definition'>addXHtmlDoctypeTransitional</span>
-<a name="line-744"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Transitional//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>
-<a name="line-745"></a>
-<a name="line-746"></a><span class='comment'>-- | add an XHTML frameset doctype declaration to a document</span>
-<a name="line-747"></a>
-<a name="line-748"></a><a name="addXHtmlDoctypeFrameset"></a><span class='definition'>addXHtmlDoctypeFrameset</span>
-<a name="line-749"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Frameset//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"</span>
-<a name="line-750"></a>
-<a name="line-751"></a><span class='comment'>-- | add a doctype declaration to a document</span>
-<a name="line-752"></a><span class='comment'>--</span>
-<a name="line-753"></a><span class='comment'>-- The arguments are the root element name, the PUBLIC id and the SYSTEM id</span>
-<a name="line-754"></a>
-<a name="line-755"></a><a name="addDoctypeDecl"></a><span class='definition'>addDoctypeDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-756"></a><span class='definition'>addDoctypeDecl</span> <span class='varid'>rootElem</span> <span class='varid'>public</span> <span class='varid'>system</span>
-<a name="line-757"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-758"></a>      <span class='varid'>replaceChildren</span>
-<a name="line-759"></a>      <span class='layout'>(</span> <span class='varid'>mkDTDDoctype</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>public</span> <span class='keyword'>then</span> <span class='varid'>id</span> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>public</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-760"></a>		       <span class='varop'>.</span>
-<a name="line-761"></a>		       <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>system</span> <span class='keyword'>then</span> <span class='varid'>id</span> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>system</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-762"></a>		       <span class='varop'>$</span>  <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>rootElem</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
-<a name="line-763"></a>		     <span class='layout'>)</span> <span class='varid'>none</span>
-<a name="line-764"></a>	<span class='varop'>&lt;+&gt;</span>
-<a name="line-765"></a>	<span class='varid'>txt</span> <span class='str'>"\n"</span>
-<a name="line-766"></a>	<span class='varop'>&lt;+&gt;</span>
-<a name="line-767"></a>	<span class='varid'>getChildren</span>
-<a name="line-768"></a>      <span class='layout'>)</span>
-<a name="line-769"></a>
-<a name="line-770"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006-9 Uwe Schmidt
+<a name="line-6"></a>   License    : MIT
+<a name="line-7"></a>
+<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-9"></a>   Stability  : stable
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   common edit arrows
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeContents</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>collapseAllXText</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>collapseXText</span>
+<a name="line-24"></a>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>xshowEscapeXml</span>
+<a name="line-26"></a>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>escapeHtmlDoc</span>
+<a name="line-29"></a>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-33"></a>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>preventEmptyElements</span>
+<a name="line-37"></a> 
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>removeComment</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>removeAllComment</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>removeAllWhiteSpace</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>
+<a name="line-43"></a>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>transfCdata</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCdata</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>transfCharRef</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCharRef</span>
+<a name="line-48"></a>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>hasXmlPi</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>
+<a name="line-52"></a>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>addDoctypeDecl</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeStrict</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>
+<a name="line-57"></a>    <span class='layout'>)</span>
+<a name="line-58"></a><span class='keyword'>where</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
+<a name="line-61"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-62"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
+<a name="line-63"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
+<a name="line-64"></a><span class='keyword'>import</span> 		 <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
+<a name="line-65"></a>
+<a name="line-66"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-67"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-68"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> 	<span class='keyword'>as</span> <span class='conid'>XN</span>
+<a name="line-69"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>		<span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>
+<a name="line-70"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span> 	<span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>
+<a name="line-71"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>         <span class='layout'>(</span> <span class='varid'>emptyHtmlTags</span> <span class='layout'>)</span>
+<a name="line-72"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>	<span class='layout'>(</span> <span class='varid'>xmlEntities</span> <span class='layout'>)</span>
+<a name="line-73"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>	<span class='layout'>(</span> <span class='varid'>xhtmlEntities</span> <span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> 			<span class='keyword'>as</span> <span class='conid'>M</span>
+<a name="line-76"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-79"></a>
+<a name="line-80"></a><span class='comment'>-- |</span>
+<a name="line-81"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>
+<a name="line-82"></a><span class='comment'>--</span>
+<a name="line-83"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>
+<a name="line-84"></a><span class='comment'>--</span>
+<a name="line-85"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>
+<a name="line-86"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>
+<a name="line-87"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>
+<a name="line-88"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>
+<a name="line-89"></a><span class='comment'>--</span>
+<a name="line-90"></a><span class='comment'>--</span>
+<a name="line-91"></a><span class='comment'>-- Not implemented yet:</span>
+<a name="line-92"></a><span class='comment'>--</span>
+<a name="line-93"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'</span>
+<a name="line-98"></a>
+<a name="line-99"></a><a name="canonicalizeTree'"></a><span class='definition'>canonicalizeTree'</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-100"></a><span class='definition'>canonicalizeTree'</span> <span class='varid'>toBeRemoved</span>
+<a name="line-101"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isText</span><span class='layout'>)</span>
+<a name="line-102"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-103"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>
+<a name="line-104"></a>      <span class='keyword'>where</span>
+<a name="line-105"></a>      <span class='varid'>canonicalize1Node</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-106"></a>      <span class='varid'>canonicalize1Node</span>
+<a name="line-107"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isPi</span> <span class='varop'>`when`</span> <span class='varid'>isDTD</span><span class='layout'>)</span>		<span class='comment'>-- remove DTD parts, except PIs</span>
+<a name="line-108"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-109"></a>	    <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>toBeRemoved</span><span class='layout'>)</span>		<span class='comment'>-- remove unintersting nodes</span>
+<a name="line-110"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-111"></a>	    <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>transfCharRef</span>
+<a name="line-112"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-113"></a>			     <span class='varid'>collapseXText</span>
+<a name="line-114"></a>			   <span class='layout'>)</span>
+<a name="line-115"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-116"></a>	    <span class='layout'>)</span>
+<a name="line-117"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-118"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>
+<a name="line-119"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-120"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>
+<a name="line-121"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-122"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>
+<a name="line-123"></a>
+<a name="line-124"></a>
+<a name="line-125"></a><span class='comment'>-- |</span>
+<a name="line-126"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>
+<a name="line-127"></a><span class='comment'>--</span>
+<a name="line-128"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>
+<a name="line-129"></a><span class='comment'>--</span>
+<a name="line-130"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>
+<a name="line-131"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>
+<a name="line-132"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>
+<a name="line-133"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>
+<a name="line-134"></a><span class='comment'>--</span>
+<a name="line-135"></a><span class='comment'>-- Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute</span>
+<a name="line-136"></a><span class='comment'>-- values and text</span>
+<a name="line-137"></a><span class='comment'>--</span>
+<a name="line-138"></a><span class='comment'>-- Not implemented yet:</span>
+<a name="line-139"></a><span class='comment'>--</span>
+<a name="line-140"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>
+<a name="line-141"></a><span class='comment'>--</span>
+<a name="line-142"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="canonicalizeAllNodes"></a><span class='definition'>canonicalizeAllNodes</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-145"></a><span class='definition'>canonicalizeAllNodes</span>
+<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-147"></a>      <span class='varid'>canonicalizeTree'</span> <span class='layout'>(</span> <span class='varid'>isCmt</span>		<span class='comment'>-- remove comment</span>
+<a name="line-148"></a>			  <span class='varop'>&lt;+&gt;</span>
+<a name="line-149"></a>			  <span class='varid'>isXmlPi</span>	<span class='comment'>-- remove xml declaration</span>
+<a name="line-150"></a>			<span class='layout'>)</span>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='comment'>-- |</span>
+<a name="line-153"></a><span class='comment'>-- Canonicalize a tree for XPath</span>
+<a name="line-154"></a><span class='comment'>-- Like 'canonicalizeAllNodes' but comment nodes are not removed</span>
+<a name="line-155"></a><span class='comment'>--</span>
+<a name="line-156"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="canonicalizeForXPath"></a><span class='definition'>canonicalizeForXPath</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-159"></a><span class='definition'>canonicalizeForXPath</span>
+<a name="line-160"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-161"></a>      <span class='varid'>canonicalizeTree'</span> <span class='varid'>isXmlPi</span>
+<a name="line-162"></a>
+<a name="line-163"></a><span class='comment'>-- |</span>
+<a name="line-164"></a><span class='comment'>-- Canonicalize the contents of a document</span>
+<a name="line-165"></a><span class='comment'>--</span>
+<a name="line-166"></a><span class='comment'>-- substitutes all char refs in text and attribute values,</span>
+<a name="line-167"></a><span class='comment'>-- removes CDATA section and combines all sequences of resulting text</span>
+<a name="line-168"></a><span class='comment'>-- nodes into a single text node</span>
+<a name="line-169"></a><span class='comment'>--</span>
+<a name="line-170"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="canonicalizeContents"></a><span class='definition'>canonicalizeContents</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-173"></a><span class='definition'>canonicalizeContents</span>
+<a name="line-174"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-175"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>
+<a name="line-176"></a>      <span class='keyword'>where</span>
+<a name="line-177"></a>      <span class='varid'>canonicalize1Node</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-178"></a>      <span class='varid'>canonicalize1Node</span>
+<a name="line-179"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>transfCharRef</span>
+<a name="line-180"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-181"></a>			     <span class='varid'>collapseXText</span>
+<a name="line-182"></a>			   <span class='layout'>)</span>
+<a name="line-183"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-184"></a>	    <span class='layout'>)</span>
+<a name="line-185"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-186"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>
+<a name="line-187"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-188"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>
+<a name="line-189"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-190"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>
+<a name="line-191"></a>
+<a name="line-192"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-193"></a>
+<a name="line-194"></a><a name="collapseXText'"></a><span class='definition'>collapseXText'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-195"></a><span class='definition'>collapseXText'</span>
+<a name="line-196"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='varid'>mergeText'</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-197"></a>    <span class='keyword'>where</span>
+<a name="line-198"></a>    <span class='varid'>mergeText'</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-199"></a>    <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='layout'>(</span><span class='varid'>t2</span> <span class='conop'>:</span> <span class='varid'>ts2</span><span class='layout'>)</span>
+<a name="line-200"></a>	<span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t1</span> <span class='varop'>&amp;&amp;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t2</span>
+<a name="line-201"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-202"></a>	      <span class='varid'>s1</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t1</span>
+<a name="line-203"></a>	      <span class='varid'>s2</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t2</span>
+<a name="line-204"></a>	      <span class='varid'>t</span>  <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='varop'>++</span> <span class='varid'>s2</span><span class='layout'>)</span>
+<a name="line-205"></a>	      <span class='keyword'>in</span>
+<a name="line-206"></a>	      <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>ts2</span>
+<a name="line-207"></a>    <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='varid'>ts</span>
+<a name="line-208"></a>	<span class='keyglyph'>=</span> <span class='varid'>t1</span> <span class='conop'>:</span> <span class='varid'>ts</span>
+<a name="line-209"></a>
+<a name="line-210"></a><span class='comment'>-- |</span>
+<a name="line-211"></a><span class='comment'>-- Collects sequences of text nodes in the list of children of a node into one single text node.</span>
+<a name="line-212"></a><span class='comment'>-- This is useful, e.g. after char and entity reference substitution</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="collapseXText"></a><span class='definition'>collapseXText</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-215"></a><span class='definition'>collapseXText</span>
+<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-217"></a>      <span class='varid'>collapseXText'</span>
+<a name="line-218"></a>
+<a name="line-219"></a><span class='comment'>-- |</span>
+<a name="line-220"></a><span class='comment'>-- Applies collapseXText recursively.</span>
+<a name="line-221"></a><span class='comment'>--</span>
+<a name="line-222"></a><span class='comment'>--</span>
+<a name="line-223"></a><span class='comment'>-- see also : 'collapseXText'</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="collapseAllXText"></a><span class='definition'>collapseAllXText</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-226"></a><span class='definition'>collapseAllXText</span>
+<a name="line-227"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-228"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>collapseXText'</span>
+<a name="line-229"></a>
+<a name="line-230"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-231"></a>
+<a name="line-232"></a><span class='comment'>-- | apply an arrow to the input and convert the resulting XML trees into an XML escaped string</span>
+<a name="line-233"></a><span class='comment'>--</span>
+<a name="line-234"></a><span class='comment'>-- This is a save variant for converting a tree into an XML string representation that is parsable with 'Text.XML.HXT.Arrow.ReadDocument'.</span>
+<a name="line-235"></a><span class='comment'>-- It is implemented with 'Text.XML.HXT.Arrow.XmlArrow.xshow', but xshow does no XML escaping. The XML escaping is done with</span>
+<a name="line-236"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.escapeXmlDoc' before xshow is applied.</span>
+<a name="line-237"></a><span class='comment'>--</span>
+<a name="line-238"></a><span class='comment'>-- So the following law holds</span>
+<a name="line-239"></a><span class='comment'>--</span>
+<a name="line-240"></a><span class='comment'>-- &gt; xshowEscape f &gt;&gt;&gt; xread == f</span>
+<a name="line-241"></a>
+<a name="line-242"></a><a name="xshowEscapeXml"></a><span class='definition'>xshowEscapeXml</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>String</span>
+<a name="line-243"></a><span class='definition'>xshowEscapeXml</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>escapeXmlDoc</span><span class='layout'>)</span>
+<a name="line-244"></a>
+<a name="line-245"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-246"></a>
+<a name="line-247"></a><span class='comment'>-- |</span>
+<a name="line-248"></a><span class='comment'>-- escape XmlText,</span>
+<a name="line-249"></a><span class='comment'>-- transform all special XML chars into char- or entity- refs</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="EntityRefTable"></a><span class='keyword'>type</span> <span class='conid'>EntityRefTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>Int</span> <span class='conid'>String</span>
+<a name="line-252"></a>
+<a name="line-253"></a><a name="xmlEntityRefTable"></a><span class='definition'>xmlEntityRefTable</span>
+<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>xhtmlEntityRefTable</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span>
+<a name="line-255"></a>
+<a name="line-256"></a><span class='definition'>xmlEntityRefTable</span>   <span class='keyglyph'>=</span> <span class='varid'>buildEntityRefTable</span> <span class='varop'>$</span> <span class='varid'>xmlEntities</span>
+<a name="line-257"></a><a name="xhtmlEntityRefTable"></a><span class='definition'>xhtmlEntityRefTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildEntityRefTable</span> <span class='varop'>$</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-258"></a>
+<a name="line-259"></a><a name="buildEntityRefTable"></a><span class='definition'>buildEntityRefTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>EntityRefTable</span>
+<a name="line-260"></a><span class='definition'>buildEntityRefTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span><span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="escapeText''"></a><span class='definition'>escapeText''</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-263"></a><span class='definition'>escapeText''</span> <span class='varid'>escChar</span> <span class='varid'>isEsc</span> <span class='varid'>t</span>
+<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='varid'>escape'</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-265"></a>    <span class='keyword'>where</span>
+<a name="line-266"></a>    <span class='varid'>escape'</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>		<span class='comment'>-- empty text nodes remain empty text nodes</span>
+<a name="line-267"></a>    <span class='varid'>escape'</span> <span class='varid'>s</span>  <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>s</span>	<span class='comment'>-- they do not disapear</span>
+<a name="line-268"></a>
+<a name="line-269"></a>    <span class='varid'>escape</span> <span class='str'>""</span>
+<a name="line-270"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-271"></a>    <span class='varid'>escape</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>s1</span><span class='layout'>)</span>
+<a name="line-272"></a>	<span class='keyglyph'>|</span> <span class='varid'>isEsc</span> <span class='varid'>c</span>
+<a name="line-273"></a>	    <span class='keyglyph'>=</span> <span class='varid'>escChar</span> <span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>escape</span> <span class='varid'>s1</span>
+<a name="line-274"></a>    <span class='varid'>escape</span> <span class='varid'>s</span>
+<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>escape</span> <span class='varid'>s2</span>
+<a name="line-276"></a>	<span class='keyword'>where</span>
+<a name="line-277"></a>	<span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>break</span> <span class='varid'>isEsc</span> <span class='varid'>s</span>
+<a name="line-278"></a>
+<a name="line-279"></a><span class='comment'>{-
+<a name="line-280"></a>escapeCharRef	:: Char -&gt; XmlTree
+<a name="line-281"></a>escapeCharRef	= XN.mkCharRef . fromEnum
+<a name="line-282"></a>-}</span>
+<a name="line-283"></a>
+<a name="line-284"></a><a name="escapeEntityRef"></a><span class='definition'>escapeEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-285"></a><span class='definition'>escapeEntityRef</span> <span class='varid'>entityTable</span> <span class='varid'>c</span>
+<a name="line-286"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span> <span class='varid'>c'</span><span class='layout'>)</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span> <span class='varop'>.</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>c'</span> <span class='varop'>$</span> <span class='varid'>entityTable</span>
+<a name="line-287"></a>    <span class='keyword'>where</span>
+<a name="line-288"></a>    <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="escapeXmlEntityRef"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-291"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xmlEntityRefTable</span>
+<a name="line-292"></a>
+<a name="line-293"></a><a name="escapeHtmlEntityRef"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-294"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xhtmlEntityRefTable</span>
+<a name="line-295"></a>
+<a name="line-296"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-297"></a>
+<a name="line-298"></a><span class='comment'>-- |</span>
+<a name="line-299"></a><span class='comment'>-- escape all special XML chars into XML entity references or char references</span>
+<a name="line-300"></a><span class='comment'>--</span>
+<a name="line-301"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; in text nodes into prefefiened XML entity references,</span>
+<a name="line-302"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>
+<a name="line-303"></a><span class='comment'>-- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).</span>
+<a name="line-304"></a>
+<a name="line-305"></a><a name="escapeXmlDoc"></a><span class='definition'>escapeXmlDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-306"></a><span class='definition'>escapeXmlDoc</span>
+<a name="line-307"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>escapeDoc</span> <span class='varid'>escXmlText</span> <span class='varid'>escXmlAttrValue</span>
+<a name="line-308"></a>    <span class='keyword'>where</span>
+<a name="line-309"></a>    <span class='varid'>escXmlText</span>
+<a name="line-310"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeXmlEntityRef</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"&lt;&amp;"</span><span class='layout'>)</span>		<span class='comment'>-- no escape for ", ' and &gt; required: XML standard 2.4</span>
+<a name="line-311"></a>    <span class='varid'>escXmlAttrValue</span>
+<a name="line-312"></a>        <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeXmlEntityRef</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"&lt;&gt;\"\'&amp;\n\r\t"</span><span class='layout'>)</span>
+<a name="line-313"></a>
+<a name="line-314"></a>
+<a name="line-315"></a><span class='comment'>-- |</span>
+<a name="line-316"></a><span class='comment'>-- escape all special HTML chars into XHTML entity references or char references</span>
+<a name="line-317"></a><span class='comment'>--</span>
+<a name="line-318"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,</span>
+<a name="line-319"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>
+<a name="line-320"></a><span class='comment'>-- in comments nothing is converted</span>
+<a name="line-321"></a>
+<a name="line-322"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-323"></a>
+<a name="line-324"></a><a name="escapeHtmlDoc"></a><span class='definition'>escapeHtmlDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-325"></a><span class='definition'>escapeHtmlDoc</span>
+<a name="line-326"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>escapeDoc</span> <span class='varid'>escHtmlText</span> <span class='varid'>escHtmlAttrValue</span>
+<a name="line-327"></a>    <span class='keyword'>where</span>
+<a name="line-328"></a>    <span class='varid'>escHtmlText</span>
+<a name="line-329"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlTextEsc</span>
+<a name="line-330"></a>    <span class='varid'>escHtmlAttrValue</span>
+<a name="line-331"></a>        <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlAttrEsc</span>
+<a name="line-332"></a>
+<a name="line-333"></a>    <span class='varid'>isHtmlTextEsc</span> <span class='varid'>c</span>
+<a name="line-334"></a>	<span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='varid'>toEnum</span><span class='layout'>(</span><span class='num'>128</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"&lt;&amp;"</span> <span class='layout'>)</span>
+<a name="line-335"></a>    <span class='varid'>isHtmlAttrEsc</span> <span class='varid'>c</span>
+<a name="line-336"></a>	<span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='varid'>toEnum</span><span class='layout'>(</span><span class='num'>128</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"&lt;&gt;\"\'&amp;\n\r\t"</span> <span class='layout'>)</span>
+<a name="line-337"></a>
+<a name="line-338"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-339"></a>
+<a name="line-340"></a><a name="escapeDoc"></a><span class='definition'>escapeDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-341"></a><span class='definition'>escapeDoc</span> <span class='varid'>escText</span> <span class='varid'>escAttr</span>
+<a name="line-342"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span>
+<a name="line-343"></a>    <span class='keyword'>where</span>
+<a name="line-344"></a>    <span class='varid'>escape</span>
+<a name="line-345"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-346"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isElem</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>escape</span>
+<a name="line-347"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-348"></a>			  <span class='varid'>processAttrl</span> <span class='varid'>escVal</span>
+<a name="line-349"></a>			<span class='layout'>)</span>
+<a name="line-350"></a>	  <span class='layout'>,</span> <span class='varid'>isText</span>  <span class='conop'>:-&gt;</span> <span class='varid'>escText</span>
+<a name="line-351"></a>	  <span class='comment'>-- , isCmt   :-&gt; escCmt</span>
+<a name="line-352"></a>	  <span class='layout'>,</span> <span class='varid'>isDTD</span>   <span class='conop'>:-&gt;</span> <span class='varid'>processTopDown</span> <span class='varid'>escDTD</span>
+<a name="line-353"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>    <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-354"></a>	  <span class='keyglyph'>]</span>
+<a name="line-355"></a>    <span class='varid'>escVal</span>   <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>escAttr</span>
+<a name="line-356"></a>    <span class='varid'>escDTD</span>   <span class='keyglyph'>=</span> <span class='varid'>escVal</span> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>isDTDEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='layout'>)</span>
+<a name="line-357"></a>
+<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-359"></a>
+<a name="line-360"></a><a name="preventEmptyElements"></a><span class='definition'>preventEmptyElements</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-361"></a><span class='definition'>preventEmptyElements</span> <span class='varid'>isHtml</span>
+<a name="line-362"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>insertDummyElem</span>
+<a name="line-363"></a>    <span class='keyword'>where</span>
+<a name="line-364"></a>    <span class='varid'>isNoneEmpty</span>
+<a name="line-365"></a>	<span class='keyglyph'>|</span> <span class='varid'>isHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>hasNameWith</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>emptyHtmlTags</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-366"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-367"></a>
+<a name="line-368"></a>    <span class='varid'>insertDummyElem</span>
+<a name="line-369"></a>	<span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span>
+<a name="line-370"></a>	  <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-371"></a>	    <span class='varop'>`when`</span>
+<a name="line-372"></a>	    <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-373"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-374"></a>	      <span class='varid'>isNoneEmpty</span>
+<a name="line-375"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-376"></a>	      <span class='varid'>neg</span> <span class='varid'>getChildren</span>
+<a name="line-377"></a>	    <span class='layout'>)</span>
+<a name="line-378"></a>	  <span class='layout'>)</span>
+<a name="line-379"></a>
+<a name="line-380"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-381"></a>
+<a name="line-382"></a><span class='comment'>-- |</span>
+<a name="line-383"></a><span class='comment'>-- convert a document into a Haskell representation (with show).</span>
+<a name="line-384"></a><span class='comment'>--</span>
+<a name="line-385"></a><span class='comment'>-- Useful for debugging and trace output.</span>
+<a name="line-386"></a><span class='comment'>-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'</span>
+<a name="line-387"></a>
+<a name="line-388"></a><a name="haskellRepOfXmlDoc"></a><span class='definition'>haskellRepOfXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-389"></a><span class='definition'>haskellRepOfXmlDoc</span>
+<a name="line-390"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-391"></a>      <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>getAttrl</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>show</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>
+<a name="line-392"></a>
+<a name="line-393"></a><span class='comment'>-- |</span>
+<a name="line-394"></a><span class='comment'>-- convert a document into a text and add line numbers to the text representation.</span>
+<a name="line-395"></a><span class='comment'>-- </span>
+<a name="line-396"></a><span class='comment'>-- Result is a root node with a single text node as child.</span>
+<a name="line-397"></a><span class='comment'>-- Useful for debugging and trace output.</span>
+<a name="line-398"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'</span>
+<a name="line-399"></a>
+<a name="line-400"></a><a name="numberLinesInXmlDoc"></a><span class='definition'>numberLinesInXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-401"></a><span class='definition'>numberLinesInXmlDoc</span>
+<a name="line-402"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-403"></a>      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>numberLines</span><span class='layout'>)</span>
+<a name="line-404"></a>    <span class='keyword'>where</span>
+<a name="line-405"></a>    <span class='varid'>numberLines</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-406"></a>    <span class='varid'>numberLines</span> <span class='varid'>str</span>
+<a name="line-407"></a>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>
+<a name="line-408"></a>	  <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>lineNr</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='num'>1</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>str</span><span class='layout'>)</span>
+<a name="line-409"></a>	<span class='keyword'>where</span>
+<a name="line-410"></a>	<span class='varid'>lineNr</span>	 <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-411"></a>	<span class='varid'>lineNr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>6</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>replicate</span> <span class='num'>6</span> <span class='chr'>' '</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"  "</span>
+<a name="line-412"></a>
+<a name="line-413"></a><span class='comment'>-- |</span>
+<a name="line-414"></a><span class='comment'>-- convert a document into a text representation in tree form.</span>
+<a name="line-415"></a><span class='comment'>--</span>
+<a name="line-416"></a><span class='comment'>-- Useful for debugging and trace output.</span>
+<a name="line-417"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'</span>
+<a name="line-418"></a>
+<a name="line-419"></a><a name="treeRepOfXmlDoc"></a><span class='definition'>treeRepOfXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-420"></a><span class='definition'>treeRepOfXmlDoc</span>
+<a name="line-421"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-422"></a>      <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>getAttrl</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>formatXmlTree</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>
+<a name="line-423"></a>
+<a name="line-424"></a><a name="addHeadlineToXmlDoc"></a><span class='definition'>addHeadlineToXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-425"></a><span class='definition'>addHeadlineToXmlDoc</span>
+<a name="line-426"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='varid'>addTitle</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>formatTitle</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-427"></a>    <span class='keyword'>where</span>
+<a name="line-428"></a>    <span class='varid'>addTitle</span> <span class='varid'>str</span>
+<a name="line-429"></a>	<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>str</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span> <span class='layout'>)</span>
+<a name="line-430"></a>    <span class='varid'>formatTitle</span> <span class='varid'>str</span>
+<a name="line-431"></a>	<span class='keyglyph'>=</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>headline</span> <span class='varop'>++</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>underline</span> <span class='varop'>++</span> <span class='str'>"\n\n"</span>
+<a name="line-432"></a>	<span class='keyword'>where</span>
+<a name="line-433"></a>	<span class='varid'>headline</span>  <span class='keyglyph'>=</span> <span class='str'>"content of: "</span> <span class='varop'>++</span> <span class='varid'>str</span>
+<a name="line-434"></a>        <span class='varid'>underline</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='chr'>'='</span><span class='layout'>)</span> <span class='varid'>headline</span>
+<a name="line-435"></a>
+<a name="line-436"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-437"></a>
+<a name="line-438"></a><a name="removeComment'"></a><span class='definition'>removeComment'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-439"></a><span class='definition'>removeComment'</span>		<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isCmt</span>
+<a name="line-440"></a>
+<a name="line-441"></a><span class='comment'>-- |</span>
+<a name="line-442"></a><span class='comment'>-- remove Comments: @none `when` isCmt@</span>
+<a name="line-443"></a>
+<a name="line-444"></a><a name="removeComment"></a><span class='definition'>removeComment</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-445"></a><span class='definition'>removeComment</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeComment'</span>
+<a name="line-446"></a>
+<a name="line-447"></a><span class='comment'>-- |</span>
+<a name="line-448"></a><span class='comment'>-- remove all comments recursively</span>
+<a name="line-449"></a>
+<a name="line-450"></a><a name="removeAllComment"></a><span class='definition'>removeAllComment</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-451"></a><span class='definition'>removeAllComment</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeComment'</span>
+<a name="line-452"></a>
+<a name="line-453"></a><span class='comment'>-- ----------</span>
+<a name="line-454"></a>
+<a name="line-455"></a><a name="removeWhiteSpace'"></a><span class='definition'>removeWhiteSpace'</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-456"></a><span class='definition'>removeWhiteSpace'</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isWhiteSpace</span>
+<a name="line-457"></a>
+<a name="line-458"></a><span class='comment'>-- |</span>
+<a name="line-459"></a><span class='comment'>-- simple filter for removing whitespace.</span>
+<a name="line-460"></a><span class='comment'>--</span>
+<a name="line-461"></a><span class='comment'>-- no check on sigificant whitespace, e.g. in HTML \&lt;pre\&gt;-elements, is done.</span>
+<a name="line-462"></a><span class='comment'>--</span>
+<a name="line-463"></a><span class='comment'>--</span>
+<a name="line-464"></a><span class='comment'>-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'</span>
+<a name="line-465"></a>
+<a name="line-466"></a><a name="removeWhiteSpace"></a><span class='definition'>removeWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-467"></a><span class='definition'>removeWhiteSpace</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeWhiteSpace'</span>
+<a name="line-468"></a>
+<a name="line-469"></a><span class='comment'>-- |</span>
+<a name="line-470"></a><span class='comment'>-- simple recursive filter for removing all whitespace.</span>
+<a name="line-471"></a><span class='comment'>--</span>
+<a name="line-472"></a><span class='comment'>-- removes all text nodes in a tree that consist only of whitespace.</span>
+<a name="line-473"></a><span class='comment'>--</span>
+<a name="line-474"></a><span class='comment'>--</span>
+<a name="line-475"></a><span class='comment'>-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'</span>
+<a name="line-476"></a>
+<a name="line-477"></a><a name="removeAllWhiteSpace"></a><span class='definition'>removeAllWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-478"></a><span class='definition'>removeAllWhiteSpace</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeWhiteSpace'</span>
+<a name="line-479"></a>
+<a name="line-480"></a><span class='comment'>-- |</span>
+<a name="line-481"></a><span class='comment'>-- filter for removing all not significant whitespace.</span>
+<a name="line-482"></a><span class='comment'>--</span>
+<a name="line-483"></a><span class='comment'>-- the tree traversed for removing whitespace between elements,</span>
+<a name="line-484"></a><span class='comment'>-- that was inserted for indentation and readability.</span>
+<a name="line-485"></a><span class='comment'>-- whitespace is only removed at places, where it's not significat</span>
+<a name="line-486"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>
+<a name="line-487"></a><span class='comment'>-- by a tag attribute @xml:space@</span>
+<a name="line-488"></a><span class='comment'>--</span>
+<a name="line-489"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@</span>
+<a name="line-490"></a><span class='comment'>--</span>
+<a name="line-491"></a><span class='comment'>-- input is root node of the document to be cleaned up,</span>
+<a name="line-492"></a><span class='comment'>-- output the semantically equivalent simplified tree</span>
+<a name="line-493"></a><span class='comment'>--</span>
+<a name="line-494"></a><span class='comment'>--</span>
+<a name="line-495"></a><span class='comment'>-- see also : 'indentDoc', 'removeAllWhiteSpace'</span>
+<a name="line-496"></a>
+<a name="line-497"></a><a name="removeDocWhiteSpace"></a><span class='definition'>removeDocWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-498"></a><span class='definition'>removeDocWhiteSpace</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeRootWhiteSpace</span>
+<a name="line-499"></a>
+<a name="line-500"></a>
+<a name="line-501"></a><a name="removeRootWhiteSpace"></a><span class='definition'>removeRootWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-502"></a><span class='definition'>removeRootWhiteSpace</span>
+<a name="line-503"></a>    <span class='keyglyph'>=</span>  <span class='varid'>processChildren</span> <span class='varid'>processRootElement</span>
+<a name="line-504"></a>       <span class='varop'>`when`</span>
+<a name="line-505"></a>       <span class='varid'>isRoot</span>
+<a name="line-506"></a>    <span class='keyword'>where</span>
+<a name="line-507"></a>    <span class='varid'>processRootElement</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-508"></a>    <span class='varid'>processRootElement</span>
+<a name="line-509"></a>	<span class='keyglyph'>=</span> <span class='varid'>removeWhiteSpace</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processChild</span>
+<a name="line-510"></a>	<span class='keyword'>where</span>
+<a name="line-511"></a>	<span class='varid'>processChild</span>
+<a name="line-512"></a>	    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTD</span>
+<a name="line-513"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>removeAllWhiteSpace</span>			<span class='comment'>-- whitespace in DTD is redundant</span>
+<a name="line-514"></a>		      <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-515"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-516"></a>					      <span class='varop'>&gt;&gt;.</span> <span class='varid'>indentTrees</span> <span class='varid'>insertNothing</span> <span class='conid'>False</span> <span class='num'>1</span>
+<a name="line-517"></a>					    <span class='layout'>)</span>
+<a name="line-518"></a>		      <span class='keyglyph'>]</span>
+<a name="line-519"></a>
+<a name="line-520"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-521"></a>
+<a name="line-522"></a><span class='comment'>-- |</span>
+<a name="line-523"></a><span class='comment'>-- filter for indenting a document tree for pretty printing.</span>
+<a name="line-524"></a><span class='comment'>--</span>
+<a name="line-525"></a><span class='comment'>-- the tree is traversed for inserting whitespace for tag indentation.</span>
+<a name="line-526"></a><span class='comment'>--</span>
+<a name="line-527"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it isn't significant,</span>
+<a name="line-528"></a><span class='comment'>-- is's not inserted between tags and text containing non whitespace chars.</span>
+<a name="line-529"></a><span class='comment'>--</span>
+<a name="line-530"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it's not significant.</span>
+<a name="line-531"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>
+<a name="line-532"></a><span class='comment'>-- by a tag attribute @xml:space@</span>
+<a name="line-533"></a><span class='comment'>--</span>
+<a name="line-534"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@.</span>
+<a name="line-535"></a><span class='comment'>--</span>
+<a name="line-536"></a><span class='comment'>-- input is a complete document tree or a document fragment</span>
+<a name="line-537"></a><span class='comment'>-- result is the semantically equivalent formatted tree.</span>
+<a name="line-538"></a><span class='comment'>--</span>
+<a name="line-539"></a><span class='comment'>--</span>
+<a name="line-540"></a><span class='comment'>-- see also : 'removeDocWhiteSpace'</span>
+<a name="line-541"></a>
+<a name="line-542"></a><a name="indentDoc"></a><span class='definition'>indentDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-543"></a><span class='definition'>indentDoc</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-544"></a>			  <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>`guards`</span> <span class='varid'>indentRoot</span> <span class='layout'>)</span>
+<a name="line-545"></a>			    <span class='varop'>`orElse`</span>
+<a name="line-546"></a>			    <span class='layout'>(</span><span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-547"></a>			  <span class='layout'>)</span>
+<a name="line-548"></a>
+<a name="line-549"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-550"></a>
+<a name="line-551"></a><a name="indentRoot"></a><span class='definition'>indentRoot</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-552"></a><span class='definition'>indentRoot</span>		<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>indentRootChildren</span>
+<a name="line-553"></a>    <span class='keyword'>where</span>
+<a name="line-554"></a>    <span class='varid'>indentRootChildren</span>
+<a name="line-555"></a>	<span class='keyglyph'>=</span> <span class='varid'>removeText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>insertNL</span>
+<a name="line-556"></a>	<span class='keyword'>where</span>
+<a name="line-557"></a>	<span class='varid'>removeText</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isText</span>
+<a name="line-558"></a>	<span class='varid'>insertNL</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span>
+<a name="line-559"></a>	<span class='varid'>indentChild</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
+<a name="line-560"></a>			    <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-561"></a>			      <span class='varop'>&gt;&gt;.</span>
+<a name="line-562"></a>			      <span class='varid'>indentTrees</span> <span class='layout'>(</span><span class='varid'>insertIndentation</span> <span class='num'>2</span><span class='layout'>)</span> <span class='conid'>False</span> <span class='num'>1</span>
+<a name="line-563"></a>			    <span class='layout'>)</span>
+<a name="line-564"></a>			    <span class='varop'>`whenNot`</span> <span class='varid'>isDTD</span>
+<a name="line-565"></a>			  <span class='layout'>)</span>
+<a name="line-566"></a>
+<a name="line-567"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-568"></a><span class='comment'>--</span>
+<a name="line-569"></a><span class='comment'>-- copied from EditFilter and rewritten for arrows</span>
+<a name="line-570"></a><span class='comment'>-- to remove dependency to the filter module</span>
+<a name="line-571"></a>
+<a name="line-572"></a><a name="indentTrees"></a><span class='definition'>indentTrees</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-573"></a><span class='definition'>indentTrees</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span>
+<a name="line-574"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-575"></a><span class='definition'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace</span> <span class='varid'>level</span> <span class='varid'>ts</span>
+<a name="line-576"></a>    <span class='keyglyph'>=</span> <span class='varid'>runLAs</span> <span class='varid'>lsf</span> <span class='varid'>ls</span>
+<a name="line-577"></a>      <span class='varop'>++</span>
+<a name="line-578"></a>      <span class='varid'>indentRest</span> <span class='varid'>rs</span>
+<a name="line-579"></a>      <span class='keyword'>where</span>
+<a name="line-580"></a>      <span class='varid'>runLAs</span> <span class='varid'>f</span> <span class='varid'>l</span>
+<a name="line-581"></a>	  <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>constL</span> <span class='varid'>l</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>undefined</span>
+<a name="line-582"></a>
+<a name="line-583"></a>      <span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span> <span class='varid'>rs</span><span class='layout'>)</span>
+<a name="line-584"></a>	  <span class='keyglyph'>=</span> <span class='varid'>break</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>ts</span>
+<a name="line-585"></a>
+<a name="line-586"></a>      <span class='varid'>isSignificant</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>
+<a name="line-587"></a>      <span class='varid'>isSignificant</span>
+<a name="line-588"></a>	  <span class='keyglyph'>=</span> <span class='varid'>preserveSpace</span>
+<a name="line-589"></a>	    <span class='varop'>||</span>
+<a name="line-590"></a>	    <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLAs</span> <span class='varid'>isSignificantPart</span><span class='layout'>)</span> <span class='varid'>ls</span>
+<a name="line-591"></a>
+<a name="line-592"></a>      <span class='varid'>isSignificantPart</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-593"></a>      <span class='varid'>isSignificantPart</span>
+<a name="line-594"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span>
+<a name="line-595"></a>	    <span class='keyglyph'>[</span> <span class='varid'>isText</span> <span class='varop'>`guards`</span> <span class='varid'>neg</span> <span class='varid'>isWhiteSpace</span>
+<a name="line-596"></a>	    <span class='layout'>,</span> <span class='varid'>isCdata</span>
+<a name="line-597"></a>	    <span class='layout'>,</span> <span class='varid'>isCharRef</span>
+<a name="line-598"></a>	    <span class='layout'>,</span> <span class='varid'>isEntityRef</span>
+<a name="line-599"></a>	    <span class='keyglyph'>]</span>
+<a name="line-600"></a>
+<a name="line-601"></a>      <span class='varid'>lsf</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-602"></a>      <span class='varid'>lsf</span>
+<a name="line-603"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>
+<a name="line-604"></a>	      <span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-605"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-606"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isWhiteSpace</span><span class='layout'>)</span>
+<a name="line-607"></a>                <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-608"></a>                <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='varid'>level</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>this</span><span class='layout'>)</span>
+<a name="line-609"></a>
+<a name="line-610"></a>      <span class='varid'>indentRest</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-611"></a>      <span class='varid'>indentRest</span> <span class='conid'>[]</span>
+<a name="line-612"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>
+<a name="line-613"></a>	      <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-614"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-615"></a>	      <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='comment'>-</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>undefined</span>
+<a name="line-616"></a>
+<a name="line-617"></a>      <span class='varid'>indentRest</span> <span class='layout'>(</span><span class='varid'>t'</span><span class='conop'>:</span><span class='varid'>ts'</span><span class='layout'>)</span>
+<a name="line-618"></a>	  <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>indentElem</span>
+<a name="line-619"></a>		      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-620"></a>		      <span class='varid'>lsf</span>
+<a name="line-621"></a>		    <span class='layout'>)</span>
+<a name="line-622"></a>		    <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-623"></a>		  <span class='layout'>)</span> <span class='varid'>t'</span>
+<a name="line-624"></a>            <span class='varop'>++</span>
+<a name="line-625"></a>	    <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ts'</span>
+<a name="line-626"></a>	      <span class='keyword'>then</span> <span class='varid'>indentRest</span>
+<a name="line-627"></a>	      <span class='keyword'>else</span> <span class='varid'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace</span> <span class='varid'>level</span>
+<a name="line-628"></a>	    <span class='layout'>)</span> <span class='varid'>ts'</span>
+<a name="line-629"></a>	  <span class='keyword'>where</span>
+<a name="line-630"></a>	  <span class='varid'>indentElem</span>
+<a name="line-631"></a>	      <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>	<span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-632"></a>				  <span class='varop'>&gt;&gt;.</span>
+<a name="line-633"></a>				  <span class='varid'>indentChildren</span>
+<a name="line-634"></a>				<span class='layout'>)</span>
+<a name="line-635"></a>
+<a name="line-636"></a>	  <span class='varid'>xmlSpaceAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-637"></a>	  <span class='varid'>xmlSpaceAttrValue</span>
+<a name="line-638"></a>	      <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='str'>"xml:space"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>t'</span>
+<a name="line-639"></a>
+<a name="line-640"></a>	  <span class='varid'>preserveSpace'</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>
+<a name="line-641"></a>	  <span class='varid'>preserveSpace'</span>
+<a name="line-642"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>preserveSpace</span>
+<a name="line-643"></a>		  <span class='varop'>.</span>
+<a name="line-644"></a>		  <span class='varid'>lookup</span> <span class='varid'>xmlSpaceAttrValue</span>
+<a name="line-645"></a>	        <span class='layout'>)</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"preserve"</span><span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>
+<a name="line-646"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"default"</span><span class='layout'>,</span>  <span class='conid'>False</span><span class='layout'>)</span>
+<a name="line-647"></a>		  <span class='keyglyph'>]</span>
+<a name="line-648"></a>
+<a name="line-649"></a>	  <span class='varid'>indentChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-650"></a>	  <span class='varid'>indentChildren</span> <span class='varid'>cs'</span>
+<a name="line-651"></a>	      <span class='keyglyph'>|</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span><span class='layout'>)</span> <span class='varid'>cs'</span>
+<a name="line-652"></a>		  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-653"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-654"></a>		  <span class='keyglyph'>=</span> <span class='varid'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace'</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cs'</span>
+<a name="line-655"></a>
+<a name="line-656"></a>	
+<a name="line-657"></a><span class='comment'>-- filter for indenting elements</span>
+<a name="line-658"></a>
+<a name="line-659"></a><a name="insertIndentation"></a><span class='definition'>insertIndentation</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>
+<a name="line-660"></a><span class='definition'>insertIndentation</span> <span class='varid'>indentWidth</span> <span class='varid'>level</span>
+<a name="line-661"></a>    <span class='keyglyph'>=</span> <span class='varid'>txt</span> <span class='layout'>(</span><span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>replicate</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='varop'>*</span> <span class='varid'>indentWidth</span><span class='layout'>)</span> <span class='chr'>' '</span><span class='layout'>)</span>
+<a name="line-662"></a>
+<a name="line-663"></a><span class='comment'>-- filter for removing all whitespace</span>
+<a name="line-664"></a>
+<a name="line-665"></a><a name="insertNothing"></a><span class='definition'>insertNothing</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>
+<a name="line-666"></a><span class='definition'>insertNothing</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-667"></a>
+<a name="line-668"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-669"></a>
+<a name="line-670"></a><a name="transfCdata'"></a><span class='definition'>transfCdata'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-671"></a><span class='definition'>transfCdata'</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getCdata</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isCdata</span>
+<a name="line-672"></a>
+<a name="line-673"></a><span class='comment'>-- |</span>
+<a name="line-674"></a><span class='comment'>-- converts a CDATA section node into a normal text node</span>
+<a name="line-675"></a>
+<a name="line-676"></a><a name="transfCdata"></a><span class='definition'>transfCdata</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-677"></a><span class='definition'>transfCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-678"></a>			  <span class='varid'>transfCdata'</span>
+<a name="line-679"></a>
+<a name="line-680"></a><span class='comment'>-- |</span>
+<a name="line-681"></a><span class='comment'>-- converts CDATA sections in whole document tree into normal text nodes</span>
+<a name="line-682"></a>
+<a name="line-683"></a><a name="transfAllCdata"></a><span class='definition'>transfAllCdata</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-684"></a><span class='definition'>transfAllCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-685"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCdata'</span>
+<a name="line-686"></a>			  
+<a name="line-687"></a><span class='comment'>--</span>
+<a name="line-688"></a>
+<a name="line-689"></a><a name="transfCharRef'"></a><span class='definition'>transfCharRef'</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-690"></a><span class='definition'>transfCharRef'</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getCharRef</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span> <span class='layout'>)</span>
+<a name="line-691"></a>		          <span class='varop'>`when`</span>
+<a name="line-692"></a>			  <span class='varid'>isCharRef</span>
+<a name="line-693"></a>
+<a name="line-694"></a><span class='comment'>-- |</span>
+<a name="line-695"></a><span class='comment'>-- converts character references to normal text</span>
+<a name="line-696"></a>
+<a name="line-697"></a><a name="transfCharRef"></a><span class='definition'>transfCharRef</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-698"></a><span class='definition'>transfCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-699"></a>			  <span class='varid'>transfCharRef'</span>
+<a name="line-700"></a>
+<a name="line-701"></a><span class='comment'>-- |</span>
+<a name="line-702"></a><span class='comment'>-- recursively converts all character references to normal text</span>
+<a name="line-703"></a>
+<a name="line-704"></a><a name="transfAllCharRef"></a><span class='definition'>transfAllCharRef</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-705"></a><span class='definition'>transfAllCharRef</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-706"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCharRef'</span>
+<a name="line-707"></a>
+<a name="line-708"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-709"></a>
+<a name="line-710"></a><a name="hasXmlPi"></a><span class='definition'>hasXmlPi</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-711"></a><span class='definition'>hasXmlPi</span>
+<a name="line-712"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
+<a name="line-713"></a>      <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-714"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-715"></a>	<span class='varid'>isPi</span>
+<a name="line-716"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-717"></a>	<span class='varid'>hasName</span> <span class='varid'>t_xml</span>
+<a name="line-718"></a>      <span class='layout'>)</span>
+<a name="line-719"></a>
+<a name="line-720"></a><span class='comment'>-- | add an \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>
+<a name="line-721"></a><span class='comment'>-- if it's not already there</span>
+<a name="line-722"></a>
+<a name="line-723"></a><a name="addXmlPi"></a><span class='definition'>addXmlPi</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-724"></a><span class='definition'>addXmlPi</span>
+<a name="line-725"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
+<a name="line-726"></a>      <span class='layout'>(</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>t_xml</span><span class='layout'>)</span> <span class='varid'>none</span>
+<a name="line-727"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-728"></a>			       <span class='varid'>addAttr</span> <span class='varid'>a_version</span> <span class='str'>"1.0"</span>
+<a name="line-729"></a>			     <span class='layout'>)</span>
+<a name="line-730"></a>			     <span class='varop'>&lt;+&gt;</span>
+<a name="line-731"></a>			     <span class='varid'>txt</span> <span class='str'>"\n"</span>
+<a name="line-732"></a>			   <span class='layout'>)</span>
+<a name="line-733"></a>	<span class='varop'>`whenNot`</span>
+<a name="line-734"></a>	<span class='varid'>hasXmlPi</span>
+<a name="line-735"></a>      <span class='layout'>)</span>
+<a name="line-736"></a>
+<a name="line-737"></a><span class='comment'>-- | add an encoding spec to the \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>
+<a name="line-738"></a>
+<a name="line-739"></a><a name="addXmlPiEncoding"></a><span class='definition'>addXmlPiEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-740"></a><span class='definition'>addXmlPiEncoding</span> <span class='varid'>enc</span>
+<a name="line-741"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-742"></a>      <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>a_encoding</span> <span class='varid'>enc</span>
+<a name="line-743"></a>		        <span class='varop'>`when`</span>
+<a name="line-744"></a>			<span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>
+<a name="line-745"></a>		      <span class='layout'>)</span>
+<a name="line-746"></a>
+<a name="line-747"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>
+<a name="line-748"></a>
+<a name="line-749"></a><a name="addXHtmlDoctypeStrict"></a><span class='definition'>addXHtmlDoctypeStrict</span>
+<a name="line-750"></a>  <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>
+<a name="line-751"></a>  <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-752"></a>
+<a name="line-753"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>
+<a name="line-754"></a>
+<a name="line-755"></a><span class='definition'>addXHtmlDoctypeStrict</span>
+<a name="line-756"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Strict//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span>
+<a name="line-757"></a>
+<a name="line-758"></a><span class='comment'>-- | add an XHTML transitional doctype declaration to a document</span>
+<a name="line-759"></a>
+<a name="line-760"></a><a name="addXHtmlDoctypeTransitional"></a><span class='definition'>addXHtmlDoctypeTransitional</span>
+<a name="line-761"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Transitional//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>
+<a name="line-762"></a>
+<a name="line-763"></a><span class='comment'>-- | add an XHTML frameset doctype declaration to a document</span>
+<a name="line-764"></a>
+<a name="line-765"></a><a name="addXHtmlDoctypeFrameset"></a><span class='definition'>addXHtmlDoctypeFrameset</span>
+<a name="line-766"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Frameset//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"</span>
+<a name="line-767"></a>
+<a name="line-768"></a><span class='comment'>-- | add a doctype declaration to a document</span>
+<a name="line-769"></a><span class='comment'>--</span>
+<a name="line-770"></a><span class='comment'>-- The arguments are the root element name, the PUBLIC id and the SYSTEM id</span>
+<a name="line-771"></a>
+<a name="line-772"></a><a name="addDoctypeDecl"></a><span class='definition'>addDoctypeDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-773"></a><span class='definition'>addDoctypeDecl</span> <span class='varid'>rootElem</span> <span class='varid'>public</span> <span class='varid'>system</span>
+<a name="line-774"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-775"></a>      <span class='varid'>replaceChildren</span>
+<a name="line-776"></a>      <span class='layout'>(</span> <span class='varid'>mkDTDDoctype</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>public</span> <span class='keyword'>then</span> <span class='varid'>id</span> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>public</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-777"></a>		       <span class='varop'>.</span>
+<a name="line-778"></a>		       <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>system</span> <span class='keyword'>then</span> <span class='varid'>id</span> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>system</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-779"></a>		       <span class='varop'>$</span>  <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>rootElem</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-780"></a>		     <span class='layout'>)</span> <span class='varid'>none</span>
+<a name="line-781"></a>	<span class='varop'>&lt;+&gt;</span>
+<a name="line-782"></a>	<span class='varid'>txt</span> <span class='str'>"\n"</span>
+<a name="line-783"></a>	<span class='varop'>&lt;+&gt;</span>
+<a name="line-784"></a>	<span class='varid'>getChildren</span>
+<a name="line-785"></a>      <span class='layout'>)</span>
+<a name="line-786"></a>
+<a name="line-787"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html b/doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
@@ -140,7 +140,7 @@
 <a name="line-132"></a>    <span class='varid'>addInternalEntity</span>
 <a name="line-133"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
 <a name="line-134"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-135"></a>	      <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: general entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-135"></a>	      <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: general entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
 <a name="line-136"></a>	    <span class='layout'>)</span>
 <a name="line-137"></a>	    <span class='varop'>&amp;&amp;&amp;</span>
 <a name="line-138"></a>	    <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isText</span><span class='layout'>)</span>
@@ -168,7 +168,7 @@
 <a name="line-160"></a>    <span class='varid'>addExternalEntity</span>
 <a name="line-161"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
 <a name="line-162"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-163"></a>	      <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: external entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-163"></a>	      <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: external entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
 <a name="line-164"></a>            <span class='layout'>)</span>
 <a name="line-165"></a>	    <span class='varop'>&amp;&amp;&amp;</span>
 <a name="line-166"></a>	    <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_url</span> 			<span class='comment'>-- the absolute URL, not the relative in attr: k_system</span>
@@ -182,7 +182,7 @@
 <a name="line-174"></a>    <span class='varid'>addUnparsedEntity</span>
 <a name="line-175"></a>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
 <a name="line-176"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-177"></a>	  <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: unparsed entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-177"></a>	  <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: unparsed entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
 <a name="line-178"></a>          <span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-179"></a>	  <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>insertEntity</span> <span class='varid'>substUnparsed</span><span class='layout'>)</span><span class='layout'>)</span>
 <a name="line-180"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
@@ -244,7 +244,7 @@
 <a name="line-236"></a>    <span class='varid'>substEntityRef</span>
 <a name="line-237"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getEntityRef</span>				<span class='comment'>-- get the entity name and the env</span>
 <a name="line-238"></a>		       <span class='varop'>&gt;&gt;&gt;</span>					<span class='comment'>-- and compute the arrow to be applied</span>
-<a name="line-239"></a>		       <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: entity reference for entity "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-239"></a>		       <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: entity reference for entity "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
 <a name="line-240"></a>		       <span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-241"></a>		       <span class='varid'>traceMsg</span> <span class='num'>3</span> <span class='layout'>(</span><span class='str'>"recursion list = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>recl</span><span class='layout'>)</span>
 <a name="line-242"></a>		     <span class='layout'>)</span>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html
@@ -10,433 +10,416 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.Arrow.Namespace
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
 <a name="line-9"></a>   Stability  : experimental
 <a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: Namespace.hs,v 1.13 2006/11/12 14:52:59 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>   namespace specific arrows
-<a name="line-14"></a>
-<a name="line-15"></a>-}</span>
-<a name="line-16"></a>
-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>
-<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>attachNsEnv</span>
-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>cleanupNamespaces</span>
-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>collectNamespaceDecl</span>
-<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>collectPrefixUriPairs</span>
-<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>isNamespaceDeclAttr</span>
-<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>getNamespaceDecl</span>
-<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>processWithNsEnv</span>
-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>processWithNsEnvWithoutAttrl</span>
-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>propagateNamespaces</span>
-<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>uniqueNamespaces</span>
-<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>uniqueNamespacesFromDeclAndQNames</span>
-<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>validateNamespaces</span>
-<a name="line-32"></a>    <span class='layout'>)</span>
-<a name="line-33"></a><span class='keyword'>where</span>
-<a name="line-34"></a>
-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
-<a name="line-40"></a>
-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-43"></a>
-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-45"></a>    <span class='layout'>(</span> <span class='varid'>isNothing</span>
-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>fromJust</span>
-<a name="line-47"></a>    <span class='layout'>)</span>
-<a name="line-48"></a>
-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
-<a name="line-50"></a>    <span class='layout'>(</span> <span class='varid'>nub</span> <span class='layout'>)</span>
+<a name="line-11"></a>
+<a name="line-12"></a>   namespace specific arrows
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>attachNsEnv</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>cleanupNamespaces</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>collectNamespaceDecl</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>collectPrefixUriPairs</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>isNamespaceDeclAttr</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>getNamespaceDecl</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>processWithNsEnv</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>processWithNsEnvWithoutAttrl</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>propagateNamespaces</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>uniqueNamespaces</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>uniqueNamespacesFromDeclAndQNames</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>validateNamespaces</span>
+<a name="line-31"></a>    <span class='layout'>)</span>
+<a name="line-32"></a><span class='keyword'>where</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
+<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
+<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
+<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-42"></a>
+<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>		    <span class='layout'>(</span> <span class='varid'>isNothing</span>
+<a name="line-44"></a>				    <span class='layout'>,</span> <span class='varid'>fromJust</span>
+<a name="line-45"></a>				    <span class='layout'>)</span>
+<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>		    <span class='layout'>(</span> <span class='varid'>nub</span> <span class='layout'>)</span>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-49"></a>
+<a name="line-50"></a><span class='comment'>-- | test whether an attribute node contains an XML Namespace declaration</span>
 <a name="line-51"></a>
-<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-53"></a>
-<a name="line-54"></a><span class='comment'>-- | test whether an attribute node contains an XML Namespace declaration</span>
-<a name="line-55"></a>
-<a name="line-56"></a><a name="isNamespaceDeclAttr"></a><span class='definition'>isNamespaceDeclAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-57"></a><span class='definition'>isNamespaceDeclAttr</span>
-<a name="line-58"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-59"></a>      <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>isNsQName</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
-<a name="line-60"></a>      <span class='keyword'>where</span>
-<a name="line-61"></a>      <span class='varid'>isNsQName</span> <span class='varid'>n</span>
-<a name="line-62"></a>	  <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
-<a name="line-63"></a>	    <span class='varop'>&amp;&amp;</span>
-<a name="line-64"></a>	    <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>lp</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>tail</span> <span class='varop'>$</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-65"></a>	  <span class='keyword'>where</span>
-<a name="line-66"></a>	  <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span> <span class='varop'>$</span> <span class='varid'>n</span>
-<a name="line-67"></a>
-<a name="line-68"></a><span class='comment'>-- | get the namespace prefix and the namespace URI out of</span>
-<a name="line-69"></a><span class='comment'>-- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')</span>
-<a name="line-70"></a><span class='comment'>-- for all other nodes this arrow fails</span>
-<a name="line-71"></a>
-<a name="line-72"></a><a name="getNamespaceDecl"></a><span class='definition'>getNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-73"></a><span class='definition'>getNamespaceDecl</span>
-<a name="line-74"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-75"></a>      <span class='varid'>isNamespaceDeclAttr</span>
-<a name="line-76"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-77"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrName</span>
-<a name="line-78"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-79"></a>	  <span class='varid'>arr</span> <span class='varid'>getNsPrefix</span>
-<a name="line-80"></a>	<span class='layout'>)</span>
-<a name="line-81"></a>	<span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
-<a name="line-82"></a>      <span class='layout'>)</span>
-<a name="line-83"></a>      <span class='keyword'>where</span>
-<a name="line-84"></a>      <span class='varid'>getNsPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>6</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span>	<span class='comment'>-- drop "xmlns:"</span>
-<a name="line-85"></a>
-<a name="line-86"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-87"></a>
-<a name="line-88"></a><span class='comment'>-- | collect all namespace declarations contained in a document</span>
-<a name="line-89"></a><span class='comment'>--</span>
-<a name="line-90"></a><span class='comment'>-- apply 'getNamespaceDecl' to a whole XmlTree</span>
-<a name="line-91"></a>
-<a name="line-92"></a><a name="collectNamespaceDecl"></a><span class='definition'>collectNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-93"></a><span class='definition'>collectNamespaceDecl</span>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getNamespaceDecl</span>
-<a name="line-94"></a>
-<a name="line-95"></a><span class='comment'>-- | collect all (namePrefix, namespaceUri) pairs from a tree</span>
-<a name="line-96"></a><span class='comment'>--</span>
-<a name="line-97"></a><span class='comment'>-- all qualified names are inspected, whether a namespace uri is defined,</span>
-<a name="line-98"></a><span class='comment'>-- for these uris the prefix and uri is returned. This arrow is useful for</span>
-<a name="line-99"></a><span class='comment'>-- namespace cleanup, e.g. for documents generated with XSLT. It can be used</span>
-<a name="line-100"></a><span class='comment'>-- together with 'collectNamespaceDecl' to 'cleanupNamespaces'</span>
-<a name="line-101"></a>
-<a name="line-102"></a><a name="collectPrefixUriPairs"></a><span class='definition'>collectPrefixUriPairs</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-103"></a><span class='definition'>collectPrefixUriPairs</span>
-<a name="line-104"></a>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>getAttrl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isPi</span><span class='layout'>)</span>
-<a name="line-105"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-106"></a>      <span class='varid'>getQName</span>
-<a name="line-107"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-108"></a>      <span class='varid'>arrL</span> <span class='varid'>getPrefixUri</span>
-<a name="line-109"></a>    <span class='keyword'>where</span>
-<a name="line-110"></a>    <span class='varid'>getPrefixUri</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-111"></a>    <span class='varid'>getPrefixUri</span> <span class='varid'>n</span>
-<a name="line-112"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-113"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
-<a name="line-114"></a>	  <span class='varop'>||</span>
-<a name="line-115"></a>	  <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xml</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>				<span class='comment'>-- these ones are reserved an predefined</span>
-<a name="line-116"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-117"></a>	<span class='keyword'>where</span>
-<a name="line-118"></a>	<span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
-<a name="line-119"></a>	<span class='varid'>px</span>  <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span>   <span class='varid'>n</span>
+<a name="line-52"></a><a name="isNamespaceDeclAttr"></a><span class='definition'>isNamespaceDeclAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-53"></a><span class='definition'>isNamespaceDeclAttr</span>
+<a name="line-54"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-55"></a>      <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>isNameSpaceName</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='comment'>-- | get the namespace prefix and the namespace URI out of</span>
+<a name="line-58"></a><span class='comment'>-- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')</span>
+<a name="line-59"></a><span class='comment'>-- for all other nodes this arrow fails</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="getNamespaceDecl"></a><span class='definition'>getNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-62"></a><span class='definition'>getNamespaceDecl</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-64"></a>      <span class='varid'>isNamespaceDeclAttr</span>
+<a name="line-65"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-66"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrName</span>
+<a name="line-67"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-68"></a>	  <span class='varid'>arr</span> <span class='varid'>getNsPrefix</span>
+<a name="line-69"></a>	<span class='layout'>)</span>
+<a name="line-70"></a>	<span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-71"></a>      <span class='layout'>)</span>
+<a name="line-72"></a>      <span class='keyword'>where</span>
+<a name="line-73"></a>      <span class='varid'>getNsPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>6</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span>	<span class='comment'>-- drop "xmlns:"</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-76"></a>
+<a name="line-77"></a><span class='comment'>-- | collect all namespace declarations contained in a document</span>
+<a name="line-78"></a><span class='comment'>--</span>
+<a name="line-79"></a><span class='comment'>-- apply 'getNamespaceDecl' to a whole XmlTree</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="collectNamespaceDecl"></a><span class='definition'>collectNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-82"></a><span class='definition'>collectNamespaceDecl</span>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getNamespaceDecl</span>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='comment'>-- | collect all (namePrefix, namespaceUri) pairs from a tree</span>
+<a name="line-85"></a><span class='comment'>--</span>
+<a name="line-86"></a><span class='comment'>-- all qualified names are inspected, whether a namespace uri is defined,</span>
+<a name="line-87"></a><span class='comment'>-- for these uris the prefix and uri is returned. This arrow is useful for</span>
+<a name="line-88"></a><span class='comment'>-- namespace cleanup, e.g. for documents generated with XSLT. It can be used</span>
+<a name="line-89"></a><span class='comment'>-- together with 'collectNamespaceDecl' to 'cleanupNamespaces'</span>
+<a name="line-90"></a>
+<a name="line-91"></a><a name="collectPrefixUriPairs"></a><span class='definition'>collectPrefixUriPairs</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-92"></a><span class='definition'>collectPrefixUriPairs</span>
+<a name="line-93"></a>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>getAttrl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isPi</span><span class='layout'>)</span>
+<a name="line-94"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-95"></a>      <span class='varid'>getQName</span>
+<a name="line-96"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-97"></a>      <span class='varid'>arrL</span> <span class='varid'>getPrefixUri</span>
+<a name="line-98"></a>    <span class='keyword'>where</span>
+<a name="line-99"></a>    <span class='varid'>getPrefixUri</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-100"></a>    <span class='varid'>getPrefixUri</span> <span class='varid'>n</span>
+<a name="line-101"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-102"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
+<a name="line-103"></a>	  <span class='varop'>||</span>
+<a name="line-104"></a>	  <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xml</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>				<span class='comment'>-- these ones are reserved an predefined</span>
+<a name="line-105"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-106"></a>	<span class='keyword'>where</span>
+<a name="line-107"></a>	<span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
+<a name="line-108"></a>	<span class='varid'>px</span>  <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span>   <span class='varid'>n</span>
+<a name="line-109"></a>
+<a name="line-110"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-111"></a>
+<a name="line-112"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations to the root element</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>-- Calls 'cleanupNamespaces' with 'collectNamespaceDecl'</span>
+<a name="line-115"></a>
+<a name="line-116"></a><a name="uniqueNamespaces"></a><span class='definition'>uniqueNamespaces</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-117"></a><span class='definition'>uniqueNamespaces</span>
+<a name="line-118"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-119"></a>      <span class='varid'>cleanupNamespaces</span> <span class='varid'>collectNamespaceDecl</span>
 <a name="line-120"></a>
-<a name="line-121"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-122"></a>
-<a name="line-123"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations to the root element</span>
-<a name="line-124"></a><span class='comment'>--</span>
-<a name="line-125"></a><span class='comment'>-- Calls 'cleanupNamespaces' with 'collectNamespaceDecl'</span>
-<a name="line-126"></a>
-<a name="line-127"></a><a name="uniqueNamespaces"></a><span class='definition'>uniqueNamespaces</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-128"></a><span class='definition'>uniqueNamespaces</span>
-<a name="line-129"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-130"></a>      <span class='varid'>cleanupNamespaces</span> <span class='varid'>collectNamespaceDecl</span>
-<a name="line-131"></a>
-<a name="line-132"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names</span>
-<a name="line-133"></a><span class='comment'>--</span>
-<a name="line-134"></a><span class='comment'>-- useful for cleanup of namespaces in generated documents.</span>
-<a name="line-135"></a><span class='comment'>-- Calls 'cleanupNamespaces' with @ collectNamespaceDecl &lt;+&gt; collectPrefixUriPairs @</span>
-<a name="line-136"></a>
-<a name="line-137"></a><a name="uniqueNamespacesFromDeclAndQNames"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-138"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span>
-<a name="line-139"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
-<a name="line-140"></a>      <span class='varid'>cleanupNamespaces</span> <span class='layout'>(</span><span class='varid'>collectNamespaceDecl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>collectPrefixUriPairs</span><span class='layout'>)</span>
-<a name="line-141"></a>
-<a name="line-142"></a><span class='comment'>-- | does the real work for namespace cleanup.</span>
-<a name="line-143"></a><span class='comment'>--</span>
-<a name="line-144"></a><span class='comment'>-- The parameter is used for collecting namespace uris and prefixes from the input tree</span>
-<a name="line-145"></a>
-<a name="line-146"></a><a name="cleanupNamespaces"></a><span class='definition'>cleanupNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-147"></a><span class='definition'>cleanupNamespaces</span> <span class='varid'>collectNamespaces</span>
-<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='varid'>renameNamespaces</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>collectNamespaces</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>nub</span><span class='layout'>)</span>
-<a name="line-149"></a>    <span class='keyword'>where</span>
-<a name="line-150"></a>    <span class='varid'>renameNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-151"></a>    <span class='varid'>renameNamespaces</span> <span class='varid'>env</span>
-<a name="line-152"></a>	<span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span>
-<a name="line-153"></a>	  <span class='layout'>(</span> <span class='varid'>processAttrl</span>
-<a name="line-154"></a>	    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isNamespaceDeclAttr</span> <span class='layout'>)</span>	<span class='comment'>-- remove all namespace declarations</span>
-<a name="line-155"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-156"></a>	      <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span>			<span class='comment'>-- update namespace prefix of attribute names, if namespace uri is set</span>
-<a name="line-157"></a>	    <span class='layout'>)</span>
-<a name="line-158"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-159"></a>	    <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span>			<span class='comment'>-- update namespace prefix of element names</span>
-<a name="line-160"></a>	  <span class='layout'>)</span>
-<a name="line-161"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-162"></a>	  <span class='varid'>attachEnv</span> <span class='varid'>env1</span>				<span class='comment'>-- all all namespaces as attributes to the root node attribute list</span>
-<a name="line-163"></a>	<span class='keyword'>where</span>
-<a name="line-164"></a>	<span class='varid'>renamePrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-165"></a>	<span class='varid'>renamePrefix</span> <span class='varid'>n</span>
-<a name="line-166"></a>	    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span>		<span class='keyglyph'>=</span> <span class='varid'>n</span>
-<a name="line-167"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>newPx</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
-<a name="line-168"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='layout'>{</span><span class='varid'>namePrefix</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varid'>newPx</span><span class='layout'>}</span>
-<a name="line-169"></a>	    <span class='keyword'>where</span>
-<a name="line-170"></a>	    <span class='varid'>uri</span>   <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
-<a name="line-171"></a>	    <span class='varid'>newPx</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>revEnv1</span>
-<a name="line-172"></a>	    
-<a name="line-173"></a>        <span class='varid'>revEnv1</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>env1</span>
-<a name="line-174"></a>
-<a name="line-175"></a>	<span class='varid'>env1</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span>
-<a name="line-176"></a>	<span class='varid'>env1</span> <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='conid'>[]</span> <span class='varid'>uris</span>
-<a name="line-177"></a>
-<a name="line-178"></a>	<span class='varid'>uris</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-179"></a>	<span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>nub</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>env</span>
-<a name="line-180"></a>
-<a name="line-181"></a>	<span class='varid'>genPrefixes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-182"></a>        <span class='varid'>genPrefixes</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"ns"</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>
-<a name="line-183"></a>
-<a name="line-184"></a>        <span class='varid'>newEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
-<a name="line-185"></a>	<span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='conid'>[]</span>
-<a name="line-186"></a>	    <span class='keyglyph'>=</span> <span class='varid'>env'</span>
+<a name="line-121"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names</span>
+<a name="line-122"></a><span class='comment'>--</span>
+<a name="line-123"></a><span class='comment'>-- useful for cleanup of namespaces in generated documents.</span>
+<a name="line-124"></a><span class='comment'>-- Calls 'cleanupNamespaces' with @ collectNamespaceDecl &lt;+&gt; collectPrefixUriPairs @</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="uniqueNamespacesFromDeclAndQNames"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-127"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span>
+<a name="line-128"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-129"></a>      <span class='varid'>cleanupNamespaces</span> <span class='layout'>(</span><span class='varid'>collectNamespaceDecl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>collectPrefixUriPairs</span><span class='layout'>)</span>
+<a name="line-130"></a>
+<a name="line-131"></a><span class='comment'>-- | does the real work for namespace cleanup.</span>
+<a name="line-132"></a><span class='comment'>--</span>
+<a name="line-133"></a><span class='comment'>-- The parameter is used for collecting namespace uris and prefixes from the input tree</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="cleanupNamespaces"></a><span class='definition'>cleanupNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-136"></a><span class='definition'>cleanupNamespaces</span> <span class='varid'>collectNamespaces</span>
+<a name="line-137"></a>    <span class='keyglyph'>=</span> <span class='varid'>renameNamespaces</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>collectNamespaces</span> <span class='varop'>&gt;&gt;^</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>nub</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-138"></a>    <span class='keyword'>where</span>
+<a name="line-139"></a>    <span class='varid'>renameNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-140"></a>    <span class='varid'>renameNamespaces</span> <span class='varid'>env</span>
+<a name="line-141"></a>	<span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span>
+<a name="line-142"></a>	  <span class='layout'>(</span> <span class='varid'>processAttrl</span>
+<a name="line-143"></a>	    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isNamespaceDeclAttr</span> <span class='layout'>)</span>	<span class='comment'>-- remove all namespace declarations</span>
+<a name="line-144"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-145"></a>	      <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span>			<span class='comment'>-- update namespace prefix of attribute names, if namespace uri is set</span>
+<a name="line-146"></a>	    <span class='layout'>)</span>
+<a name="line-147"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-148"></a>	    <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span>			<span class='comment'>-- update namespace prefix of element names</span>
+<a name="line-149"></a>	  <span class='layout'>)</span>
+<a name="line-150"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-151"></a>	  <span class='varid'>attachEnv</span> <span class='varid'>env1</span>				<span class='comment'>-- all all namespaces as attributes to the root node attribute list</span>
+<a name="line-152"></a>	<span class='keyword'>where</span>
+<a name="line-153"></a>	<span class='varid'>renamePrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-154"></a>	<span class='varid'>renamePrefix</span> <span class='varid'>n</span>
+<a name="line-155"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>uri</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-156"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>newPx</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-157"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>setNamePrefix'</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>newPx</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-158"></a>	    <span class='keyword'>where</span>
+<a name="line-159"></a>	    <span class='varid'>uri</span>   <span class='keyglyph'>=</span> <span class='varid'>namespaceUri'</span> <span class='varid'>n</span>
+<a name="line-160"></a>	    <span class='varid'>newPx</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>revEnv1</span>
+<a name="line-161"></a>	    
+<a name="line-162"></a>        <span class='varid'>revEnv1</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>env1</span>
+<a name="line-163"></a>
+<a name="line-164"></a>	<span class='varid'>env1</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span>
+<a name="line-165"></a>	<span class='varid'>env1</span> <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='conid'>[]</span> <span class='varid'>uris</span>
+<a name="line-166"></a>
+<a name="line-167"></a>	<span class='varid'>uris</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span>
+<a name="line-168"></a>	<span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>nub</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>env</span>
+<a name="line-169"></a>
+<a name="line-170"></a>	<span class='varid'>genPrefixes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span>
+<a name="line-171"></a>        <span class='varid'>genPrefixes</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"ns"</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>
+<a name="line-172"></a>
+<a name="line-173"></a>        <span class='varid'>newEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
+<a name="line-174"></a>	<span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='conid'>[]</span>
+<a name="line-175"></a>	    <span class='keyglyph'>=</span> <span class='varid'>env'</span>
+<a name="line-176"></a>
+<a name="line-177"></a>	<span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-178"></a>	    <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='varid'>env''</span> <span class='varid'>rest</span>
+<a name="line-179"></a>	    <span class='keyword'>where</span>
+<a name="line-180"></a>	    <span class='varid'>env''</span>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>env'</span>
+<a name="line-181"></a>	    <span class='varid'>prefix</span>
+<a name="line-182"></a>		<span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='varid'>notAlreadyUsed</span> <span class='varop'>$</span> <span class='varid'>preferedPrefixes</span> <span class='varop'>++</span> <span class='varid'>genPrefixes</span><span class='layout'>)</span>
+<a name="line-183"></a>	    <span class='varid'>preferedPrefixes</span>
+<a name="line-184"></a>		<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='varid'>uri</span><span class='layout'>)</span><span class='varop'>.</span><span class='varid'>snd</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>env</span>
+<a name="line-185"></a>	    <span class='varid'>notAlreadyUsed</span> <span class='varid'>s</span>
+<a name="line-186"></a>		<span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varop'>$</span> <span class='varid'>env'</span>
 <a name="line-187"></a>
-<a name="line-188"></a>	<span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>
-<a name="line-189"></a>	    <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='varid'>env''</span> <span class='varid'>rest</span>
-<a name="line-190"></a>	    <span class='keyword'>where</span>
-<a name="line-191"></a>	    <span class='varid'>env''</span>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>env'</span>
-<a name="line-192"></a>	    <span class='varid'>prefix</span>
-<a name="line-193"></a>		<span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='varid'>notAlreadyUsed</span> <span class='varop'>$</span> <span class='varid'>preferedPrefixes</span> <span class='varop'>++</span> <span class='varid'>genPrefixes</span><span class='layout'>)</span>
-<a name="line-194"></a>	    <span class='varid'>preferedPrefixes</span>
-<a name="line-195"></a>		<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='varid'>uri</span><span class='layout'>)</span><span class='varop'>.</span><span class='varid'>snd</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>env</span>
-<a name="line-196"></a>	    <span class='varid'>notAlreadyUsed</span> <span class='varid'>s</span>
-<a name="line-197"></a>		<span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varop'>$</span> <span class='varid'>env'</span>
-<a name="line-198"></a>
-<a name="line-199"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-200"></a>
-<a name="line-201"></a><span class='comment'>-- | auxiliary arrow for processing with a namespace environment</span>
-<a name="line-202"></a><span class='comment'>--</span>
-<a name="line-203"></a><span class='comment'>-- process a document tree with an arrow, containing always the</span>
-<a name="line-204"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>
-<a name="line-205"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'.</span>
-<a name="line-206"></a><span class='comment'>-- Processing of attributes can be controlled by a boolean parameter</span>
-<a name="line-207"></a>
-<a name="line-208"></a><a name="processWithNsEnv1"></a><span class='definition'>processWithNsEnv1</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-209"></a><span class='definition'>processWithNsEnv1</span> <span class='varid'>withAttr</span> <span class='varid'>f</span> <span class='varid'>env</span>
-<a name="line-210"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>isElem</span>						<span class='comment'>-- the test is just an optimization</span>
-<a name="line-211"></a>      <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varop'>$&lt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>extendEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>)</span>		<span class='comment'>-- only element nodes contain namespace declarations</span>
-<a name="line-212"></a>      <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env</span> <span class='layout'>)</span>
-<a name="line-213"></a>    <span class='keyword'>where</span>
-<a name="line-214"></a>    <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env'</span>
-<a name="line-215"></a>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>env'</span>						<span class='comment'>-- apply the env filter</span>
-<a name="line-216"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-217"></a>	  <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>withAttr</span>
-<a name="line-218"></a>	      <span class='keyword'>then</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>env'</span><span class='layout'>)</span>			<span class='comment'>-- apply the env to all attributes</span>
-<a name="line-219"></a>	      <span class='keyword'>else</span> <span class='varid'>this</span>
-<a name="line-220"></a>	    <span class='layout'>)</span>
-<a name="line-221"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-222"></a>	    <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processWithNsEnv</span> <span class='varid'>f</span> <span class='varid'>env'</span><span class='layout'>)</span>		<span class='comment'>-- apply the env recursively to all children</span>
-<a name="line-223"></a>	  <span class='layout'>)</span>
-<a name="line-224"></a>          <span class='varop'>`when`</span> <span class='varid'>isElem</span>						<span class='comment'>-- attrl and children only need processing for elem nodes</span>
-<a name="line-225"></a>
-<a name="line-226"></a>    <span class='varid'>extendEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
-<a name="line-227"></a>    <span class='varid'>extendEnv</span> <span class='varid'>env'</span> <span class='varid'>t'</span>
-<a name="line-228"></a>	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>newDecls</span> <span class='varid'>env'</span>
-<a name="line-229"></a>	<span class='keyword'>where</span>
-<a name="line-230"></a>	<span class='varid'>newDecls</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getNamespaceDecl</span> <span class='layout'>)</span> <span class='varid'>t'</span>
-<a name="line-231"></a>
-<a name="line-232"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-233"></a>
-<a name="line-234"></a><span class='comment'>-- | process a document tree with an arrow, containing always the</span>
-<a name="line-235"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>
-<a name="line-236"></a><span class='comment'>--</span>
-<a name="line-237"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'</span>
+<a name="line-188"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-189"></a>
+<a name="line-190"></a><span class='comment'>-- | auxiliary arrow for processing with a namespace environment</span>
+<a name="line-191"></a><span class='comment'>--</span>
+<a name="line-192"></a><span class='comment'>-- process a document tree with an arrow, containing always the</span>
+<a name="line-193"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>
+<a name="line-194"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'.</span>
+<a name="line-195"></a><span class='comment'>-- Processing of attributes can be controlled by a boolean parameter</span>
+<a name="line-196"></a>
+<a name="line-197"></a><a name="processWithNsEnv1"></a><span class='definition'>processWithNsEnv1</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-198"></a><span class='definition'>processWithNsEnv1</span> <span class='varid'>withAttr</span> <span class='varid'>f</span> <span class='varid'>env</span>
+<a name="line-199"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>isElem</span>						<span class='comment'>-- the test is just an optimization</span>
+<a name="line-200"></a>      <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varop'>$&lt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>extendEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>)</span>		<span class='comment'>-- only element nodes contain namespace declarations</span>
+<a name="line-201"></a>      <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env</span> <span class='layout'>)</span>
+<a name="line-202"></a>    <span class='keyword'>where</span>
+<a name="line-203"></a>    <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env'</span>
+<a name="line-204"></a>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>env'</span>						<span class='comment'>-- apply the env filter</span>
+<a name="line-205"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-206"></a>	  <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>withAttr</span>
+<a name="line-207"></a>	      <span class='keyword'>then</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>env'</span><span class='layout'>)</span>			<span class='comment'>-- apply the env to all attributes</span>
+<a name="line-208"></a>	      <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-209"></a>	    <span class='layout'>)</span>
+<a name="line-210"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-211"></a>	    <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processWithNsEnv</span> <span class='varid'>f</span> <span class='varid'>env'</span><span class='layout'>)</span>		<span class='comment'>-- apply the env recursively to all children</span>
+<a name="line-212"></a>	  <span class='layout'>)</span>
+<a name="line-213"></a>          <span class='varop'>`when`</span> <span class='varid'>isElem</span>						<span class='comment'>-- attrl and children only need processing for elem nodes</span>
+<a name="line-214"></a>
+<a name="line-215"></a>    <span class='varid'>extendEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
+<a name="line-216"></a>    <span class='varid'>extendEnv</span> <span class='varid'>env'</span> <span class='varid'>t'</span>
+<a name="line-217"></a>	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>newDecls</span><span class='layout'>)</span> <span class='varid'>env'</span>
+<a name="line-218"></a>	<span class='keyword'>where</span>
+<a name="line-219"></a>	<span class='varid'>newDecls</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getNamespaceDecl</span> <span class='layout'>)</span> <span class='varid'>t'</span>
+<a name="line-220"></a>
+<a name="line-221"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-222"></a>
+<a name="line-223"></a><span class='comment'>-- | process a document tree with an arrow, containing always the</span>
+<a name="line-224"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>
+<a name="line-225"></a><span class='comment'>--</span>
+<a name="line-226"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'</span>
+<a name="line-227"></a>
+<a name="line-228"></a><a name="processWithNsEnv"></a><span class='definition'>processWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-229"></a><span class='definition'>processWithNsEnv</span>		<span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>True</span>
+<a name="line-230"></a>
+<a name="line-231"></a><span class='comment'>-- | process all element nodes of a document tree with an arrow, containing always the</span>
+<a name="line-232"></a><span class='comment'>-- valid namespace environment as extra parameter. Attribute lists are not processed.</span>
+<a name="line-233"></a><span class='comment'>--</span>
+<a name="line-234"></a><span class='comment'>-- See also: 'processWithNsEnv'</span>
+<a name="line-235"></a>
+<a name="line-236"></a><a name="processWithNsEnvWithoutAttrl"></a><span class='definition'>processWithNsEnvWithoutAttrl</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-237"></a><span class='definition'>processWithNsEnvWithoutAttrl</span>	<span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>False</span>
 <a name="line-238"></a>
-<a name="line-239"></a><a name="processWithNsEnv"></a><span class='definition'>processWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-240"></a><span class='definition'>processWithNsEnv</span>		<span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>True</span>
-<a name="line-241"></a>
-<a name="line-242"></a><span class='comment'>-- | process all element nodes of a document tree with an arrow, containing always the</span>
-<a name="line-243"></a><span class='comment'>-- valid namespace environment as extra parameter. Attribute lists are not processed.</span>
-<a name="line-244"></a><span class='comment'>--</span>
-<a name="line-245"></a><span class='comment'>-- See also: 'processWithNsEnv'</span>
-<a name="line-246"></a>
-<a name="line-247"></a><a name="processWithNsEnvWithoutAttrl"></a><span class='definition'>processWithNsEnvWithoutAttrl</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-248"></a><span class='definition'>processWithNsEnvWithoutAttrl</span>	<span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>False</span>
-<a name="line-249"></a>
-<a name="line-250"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-251"></a>
-<a name="line-252"></a><span class='comment'>-- | attach all valid namespace declarations to the attribute list of element nodes.</span>
-<a name="line-253"></a><span class='comment'>--</span>
-<a name="line-254"></a><span class='comment'>-- This arrow is useful for document processing, that requires access to all namespace</span>
-<a name="line-255"></a><span class='comment'>-- declarations at any element node, but which cannot be done with a simple 'processWithNsEnv'.</span>
-<a name="line-256"></a>
-<a name="line-257"></a><a name="attachNsEnv"></a><span class='definition'>attachNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-258"></a><span class='definition'>attachNsEnv</span> <span class='varid'>initialEnv</span>
-<a name="line-259"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processWithNsEnvWithoutAttrl</span> <span class='varid'>attachEnv</span> <span class='varid'>initialEnv</span>
-<a name="line-260"></a>    <span class='keyword'>where</span>
+<a name="line-239"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-240"></a>
+<a name="line-241"></a><span class='comment'>-- | attach all valid namespace declarations to the attribute list of element nodes.</span>
+<a name="line-242"></a><span class='comment'>--</span>
+<a name="line-243"></a><span class='comment'>-- This arrow is useful for document processing, that requires access to all namespace</span>
+<a name="line-244"></a><span class='comment'>-- declarations at any element node, but which cannot be done with a simple 'processWithNsEnv'.</span>
+<a name="line-245"></a>
+<a name="line-246"></a><a name="attachNsEnv"></a><span class='definition'>attachNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-247"></a><span class='definition'>attachNsEnv</span> <span class='varid'>initialEnv</span>
+<a name="line-248"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processWithNsEnvWithoutAttrl</span> <span class='varid'>attachEnv</span> <span class='varid'>initialEnv</span>
+<a name="line-249"></a>    <span class='keyword'>where</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="attachEnv"></a><span class='definition'>attachEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-252"></a><span class='definition'>attachEnv</span> <span class='varid'>env</span>
+<a name="line-253"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isNamespaceDeclAttr</span><span class='layout'>)</span>
+<a name="line-254"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-255"></a>	<span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>nsAttrl</span><span class='layout'>)</span>
+<a name="line-256"></a>      <span class='layout'>)</span>
+<a name="line-257"></a>      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-258"></a>    <span class='keyword'>where</span>
+<a name="line-259"></a>    <span class='varid'>nsAttrl</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-260"></a>    <span class='varid'>nsAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>nsDeclToAttr</span> <span class='varid'>env</span>
 <a name="line-261"></a>
-<a name="line-262"></a><a name="attachEnv"></a><span class='definition'>attachEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-263"></a><span class='definition'>attachEnv</span> <span class='varid'>env</span>
-<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isNamespaceDeclAttr</span><span class='layout'>)</span>
-<a name="line-265"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-266"></a>	<span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>nsAttrl</span><span class='layout'>)</span>
-<a name="line-267"></a>      <span class='layout'>)</span>
-<a name="line-268"></a>      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
-<a name="line-269"></a>    <span class='keyword'>where</span>
-<a name="line-270"></a>    <span class='varid'>nsAttrl</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
-<a name="line-271"></a>    <span class='varid'>nsAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>nsDeclToAttr</span> <span class='varid'>env</span>
-<a name="line-272"></a>
-<a name="line-273"></a>    <span class='varid'>nsDeclToAttr</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-274"></a>    <span class='varid'>nsDeclToAttr</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>
-<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>uri</span><span class='layout'>)</span>
-<a name="line-276"></a>	<span class='keyword'>where</span>
-<a name="line-277"></a>	<span class='varid'>qn</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>
-<a name="line-278"></a>	<span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='layout'>(</span><span class='varid'>a_xmlns</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>n</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>xmlnsNamespace</span>
+<a name="line-262"></a>    <span class='varid'>nsDeclToAttr</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XName</span><span class='layout'>,</span> <span class='conid'>XName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-263"></a>    <span class='varid'>nsDeclToAttr</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-264"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-265"></a>	<span class='keyword'>where</span>
+<a name="line-266"></a>	<span class='varid'>qn</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-267"></a>	<span class='varid'>qn</span> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>nullXName</span>  <span class='varid'>xmlnsXName</span> <span class='varid'>xmlnsNamespaceXName</span>
+<a name="line-268"></a>	   <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>xmlnsXName</span> <span class='varid'>n</span>          <span class='varid'>xmlnsNamespaceXName</span>
+<a name="line-269"></a>
+<a name="line-270"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-271"></a>
+<a name="line-272"></a><span class='comment'>-- |</span>
+<a name="line-273"></a><span class='comment'>-- propagate all namespace declarations \"xmlns:ns=...\" to all element and attribute nodes of a document.</span>
+<a name="line-274"></a><span class='comment'>--</span>
+<a name="line-275"></a><span class='comment'>-- This arrow does not check for illegal use of namespaces.</span>
+<a name="line-276"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>
+<a name="line-277"></a><span class='comment'>--</span>
+<a name="line-278"></a><span class='comment'>-- The arrow may be applied repeatedly if neccessary.</span>
 <a name="line-279"></a>
-<a name="line-280"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-281"></a>
-<a name="line-282"></a><span class='comment'>-- |</span>
-<a name="line-283"></a><span class='comment'>-- propagate all namespace declarations \"xmlns:ns=...\" to all element and attribute nodes of a document.</span>
-<a name="line-284"></a><span class='comment'>--</span>
-<a name="line-285"></a><span class='comment'>-- This arrow does not check for illegal use of namespaces.</span>
-<a name="line-286"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>
-<a name="line-287"></a><span class='comment'>--</span>
-<a name="line-288"></a><span class='comment'>-- The arrow may be applied repeatedly if neccessary.</span>
+<a name="line-280"></a><a name="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-281"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-282"></a>			  <span class='varid'>propagateNamespaceEnv</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xmlXName</span><span class='layout'>,</span>   <span class='varid'>xmlNamespaceXName</span><span class='layout'>)</span>
+<a name="line-283"></a>						<span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xmlnsXName</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespaceXName</span><span class='layout'>)</span>
+<a name="line-284"></a>						<span class='keyglyph'>]</span>
+<a name="line-285"></a>
+<a name="line-286"></a><span class='comment'>-- |</span>
+<a name="line-287"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>
+<a name="line-288"></a><span class='comment'>-- to a tag node and its attributes and children.</span>
 <a name="line-289"></a>
-<a name="line-290"></a><a name="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-291"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>propagateNamespaceEnv</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_xml</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_xmlns</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
-<a name="line-292"></a>
-<a name="line-293"></a><span class='comment'>-- |</span>
-<a name="line-294"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>
-<a name="line-295"></a><span class='comment'>-- to a tag node and its attributes and children.</span>
-<a name="line-296"></a>
-<a name="line-297"></a><a name="propagateNamespaceEnv"></a><span class='definition'>propagateNamespaceEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-298"></a><span class='definition'>propagateNamespaceEnv</span>
-<a name="line-299"></a>    <span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv</span> <span class='varid'>addNamespaceUri</span>
-<a name="line-300"></a>    <span class='keyword'>where</span>
-<a name="line-301"></a>    <span class='varid'>addNamespaceUri</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-302"></a>    <span class='varid'>addNamespaceUri</span> <span class='varid'>env'</span>
-<a name="line-303"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-&gt;</span> <span class='varid'>changeElemName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>env'</span><span class='layout'>)</span>
-<a name="line-304"></a>		  <span class='layout'>,</span> <span class='varid'>isAttr</span> <span class='conop'>:-&gt;</span> <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>env'</span>
-<a name="line-305"></a>		  <span class='layout'>,</span> <span class='varid'>isPi</span>   <span class='conop'>:-&gt;</span> <span class='varid'>changePiName</span>   <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>env'</span><span class='layout'>)</span>
-<a name="line-306"></a>		  <span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
-<a name="line-307"></a>		  <span class='keyglyph'>]</span>
-<a name="line-308"></a>
-<a name="line-309"></a>    <span class='varid'>attachNamespaceUriToAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-310"></a>    <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>attrEnv</span>
-<a name="line-311"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>hasPrefixLocalPart</span> <span class='layout'>)</span>
-<a name="line-312"></a>	    <span class='varop'>`guards`</span>
-<a name="line-313"></a>	    <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>attrEnv</span><span class='layout'>)</span>
-<a name="line-314"></a>	  <span class='layout'>)</span>
-<a name="line-315"></a>          <span class='varop'>`orElse`</span>
-<a name="line-316"></a>	  <span class='layout'>(</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>xmlnsQN</span><span class='layout'>)</span>
-<a name="line-317"></a>	    <span class='varop'>`when`</span>
-<a name="line-318"></a>	    <span class='varid'>hasName</span> <span class='varid'>a_xmlns</span>
-<a name="line-319"></a>	  <span class='layout'>)</span>
-<a name="line-320"></a>	<span class='keyword'>where</span>
-<a name="line-321"></a>	<span class='varid'>hasPrefixLocalPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-322"></a>	<span class='varid'>hasPrefixLocalPart</span> <span class='varid'>s</span>
-<a name="line-323"></a>	    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='chr'>':'</span> <span class='varop'>`elem`</span> <span class='varid'>s</span> <span class='layout'>)</span>				<span class='comment'>-- small optimization: only do some string handling when is ':' found</span>
-<a name="line-324"></a>	      <span class='varop'>&amp;&amp;</span>
-<a name="line-325"></a>	      <span class='layout'>(</span> <span class='keyword'>let</span>					<span class='comment'>-- check none empty prefix and local part</span>
-<a name="line-326"></a>		<span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-327"></a>		<span class='keyword'>in</span>
-<a name="line-328"></a>		<span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>px</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-329"></a>	      <span class='layout'>)</span>
-<a name="line-330"></a>
-<a name="line-331"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-332"></a>
-<a name="line-333"></a><span class='comment'>-- |</span>
-<a name="line-334"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>
-<a name="line-335"></a><span class='comment'>--</span>
-<a name="line-336"></a><span class='comment'>-- Result is the list of errors concerning namespaces.</span>
-<a name="line-337"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespaces'</span>
-<a name="line-338"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.</span>
-<a name="line-339"></a>
-<a name="line-340"></a><a name="validateNamespaces"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-341"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varid'>validateNamespaces1</span>
-<a name="line-342"></a>
-<a name="line-343"></a><a name="validateNamespaces1"></a><span class='definition'>validateNamespaces1</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-344"></a><span class='definition'>validateNamespaces1</span>
-<a name="line-345"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validateNamespaces1</span> <span class='layout'>)</span>		<span class='comment'>-- root is correct by definition</span>
-<a name="line-346"></a>	      <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</span>
-<a name="line-347"></a>	      <span class='keyglyph'>]</span>
-<a name="line-348"></a>
-<a name="line-349"></a><span class='comment'>-- |</span>
-<a name="line-350"></a><span class='comment'>-- a single node for namespace constrains.</span>
-<a name="line-351"></a>
-<a name="line-352"></a><a name="validate1Namespaces"></a><span class='definition'>validate1Namespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-353"></a><span class='definition'>validate1Namespaces</span>
-<a name="line-354"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
-<a name="line-355"></a>      <span class='keyglyph'>[</span> <span class='varid'>isElem</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQName</span> <span class='layout'>)</span>
+<a name="line-290"></a><a name="propagateNamespaceEnv"></a><span class='definition'>propagateNamespaceEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-291"></a><span class='definition'>propagateNamespaceEnv</span>
+<a name="line-292"></a>    <span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv</span> <span class='varid'>addNamespaceUri</span>
+<a name="line-293"></a>    <span class='keyword'>where</span>
+<a name="line-294"></a>    <span class='varid'>addNamespaceUri</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-295"></a>    <span class='varid'>addNamespaceUri</span> <span class='varid'>env'</span>
+<a name="line-296"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-&gt;</span> <span class='varid'>changeElemName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>env'</span><span class='layout'>)</span>
+<a name="line-297"></a>		  <span class='layout'>,</span> <span class='varid'>isAttr</span> <span class='conop'>:-&gt;</span> <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>env'</span>
+<a name="line-298"></a>		  <span class='layout'>,</span> <span class='varid'>isPi</span>   <span class='conop'>:-&gt;</span> <span class='varid'>changePiName</span>   <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>env'</span><span class='layout'>)</span>
+<a name="line-299"></a>		  <span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-300"></a>		  <span class='keyglyph'>]</span>
+<a name="line-301"></a>
+<a name="line-302"></a>    <span class='varid'>attachNamespaceUriToAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-303"></a>    <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>attrEnv</span>
+<a name="line-304"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>namePrefix</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-305"></a>	    <span class='varop'>`guards`</span>
+<a name="line-306"></a>	    <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>attrEnv</span><span class='layout'>)</span>
+<a name="line-307"></a>	  <span class='layout'>)</span>
+<a name="line-308"></a>          <span class='varop'>`orElse`</span>
+<a name="line-309"></a>	  <span class='layout'>(</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>xmlnsQN</span><span class='layout'>)</span>
+<a name="line-310"></a>	    <span class='varop'>`when`</span>
+<a name="line-311"></a>	    <span class='varid'>hasName</span> <span class='varid'>a_xmlns</span>
+<a name="line-312"></a>	  <span class='layout'>)</span>
+<a name="line-313"></a>
+<a name="line-314"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-315"></a>
+<a name="line-316"></a><span class='comment'>-- |</span>
+<a name="line-317"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>
+<a name="line-318"></a><span class='comment'>--</span>
+<a name="line-319"></a><span class='comment'>-- Result is the list of errors concerning namespaces.</span>
+<a name="line-320"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'</span>
+<a name="line-321"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.</span>
+<a name="line-322"></a>
+<a name="line-323"></a><a name="validateNamespaces"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-324"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varid'>validateNamespaces1</span>
+<a name="line-325"></a>
+<a name="line-326"></a><a name="validateNamespaces1"></a><span class='definition'>validateNamespaces1</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-327"></a><span class='definition'>validateNamespaces1</span>
+<a name="line-328"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validateNamespaces1</span> <span class='layout'>)</span>		<span class='comment'>-- root is correct by definition</span>
+<a name="line-329"></a>	      <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</span>
+<a name="line-330"></a>	      <span class='keyglyph'>]</span>
+<a name="line-331"></a>
+<a name="line-332"></a><span class='comment'>-- |</span>
+<a name="line-333"></a><span class='comment'>-- a single node for namespace constrains.</span>
+<a name="line-334"></a>
+<a name="line-335"></a><a name="validate1Namespaces"></a><span class='definition'>validate1Namespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-336"></a><span class='definition'>validate1Namespaces</span>
+<a name="line-337"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-338"></a>      <span class='keyglyph'>[</span> <span class='varid'>isElem</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQName</span> <span class='layout'>)</span>
+<a name="line-339"></a>			   <span class='layout'>)</span>
+<a name="line-340"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span> <span class='layout'>)</span>
+<a name="line-341"></a>
+<a name="line-342"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDeclaredNamespace</span> <span class='layout'>)</span>
+<a name="line-343"></a>			   <span class='layout'>)</span>
+<a name="line-344"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"namespace for prefix in element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span> <span class='layout'>)</span>
+<a name="line-345"></a>
+<a name="line-346"></a>		         <span class='layout'>,</span> <span class='varid'>doubleOcc</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getUniversalName</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>doubles</span> <span class='layout'>)</span>
+<a name="line-347"></a>
+<a name="line-348"></a>			 <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validate1Namespaces</span>
+<a name="line-349"></a>		         <span class='keyglyph'>]</span>
+<a name="line-350"></a>
+<a name="line-351"></a>      <span class='layout'>,</span> <span class='varid'>isAttr</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQName</span> <span class='layout'>)</span>
+<a name="line-352"></a>			   <span class='layout'>)</span>
+<a name="line-353"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span> <span class='layout'>)</span>
+<a name="line-354"></a>
+<a name="line-355"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDeclaredNamespace</span> <span class='layout'>)</span>
 <a name="line-356"></a>			   <span class='layout'>)</span>
-<a name="line-357"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span> <span class='layout'>)</span>
+<a name="line-357"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"namespace for prefix in attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span> <span class='layout'>)</span>
 <a name="line-358"></a>
-<a name="line-359"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDeclaredNamespace</span> <span class='layout'>)</span>
+<a name="line-359"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>hasNamePrefix</span> <span class='varid'>a_xmlns</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>null</span>
 <a name="line-360"></a>			   <span class='layout'>)</span>
-<a name="line-361"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"namespace for prefix in element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span> <span class='layout'>)</span>
+<a name="line-361"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"namespace value of namespace declaration for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" has no value"</span> <span class='layout'>)</span>
 <a name="line-362"></a>
-<a name="line-363"></a>		         <span class='layout'>,</span> <span class='varid'>doubleOcc</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getUniversalName</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>doubles</span> <span class='layout'>)</span>
-<a name="line-364"></a>
-<a name="line-365"></a>			 <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validate1Namespaces</span>
-<a name="line-366"></a>		         <span class='keyglyph'>]</span>
+<a name="line-363"></a>                         <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedNSDecl</span> <span class='layout'>)</span>
+<a name="line-364"></a>			   <span class='layout'>)</span>
+<a name="line-365"></a>			   <span class='varop'>`guards`</span>  <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"illegal namespace declaration for name "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" starting with reserved prefix "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='str'>"xml"</span> <span class='layout'>)</span>
+<a name="line-366"></a>			 <span class='keyglyph'>]</span>
 <a name="line-367"></a>
-<a name="line-368"></a>      <span class='layout'>,</span> <span class='varid'>isAttr</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQName</span> <span class='layout'>)</span>
-<a name="line-369"></a>			   <span class='layout'>)</span>
-<a name="line-370"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span> <span class='layout'>)</span>
-<a name="line-371"></a>
-<a name="line-372"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDeclaredNamespace</span> <span class='layout'>)</span>
-<a name="line-373"></a>			   <span class='layout'>)</span>
-<a name="line-374"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"namespace for prefix in attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span> <span class='layout'>)</span>
-<a name="line-375"></a>
-<a name="line-376"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>hasNamePrefix</span> <span class='varid'>a_xmlns</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>null</span>
-<a name="line-377"></a>			   <span class='layout'>)</span>
-<a name="line-378"></a>			   <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"namespace value of namespace declaration for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" has no value"</span> <span class='layout'>)</span>
-<a name="line-379"></a>
-<a name="line-380"></a>                         <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedNSDecl</span> <span class='layout'>)</span>
-<a name="line-381"></a>			   <span class='layout'>)</span>
-<a name="line-382"></a>			   <span class='varop'>`guards`</span>  <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"illegal namespace declaration for name "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" starting with reserved prefix "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='str'>"xml"</span> <span class='layout'>)</span>
-<a name="line-383"></a>			 <span class='keyglyph'>]</span>
-<a name="line-384"></a>
-<a name="line-385"></a>      <span class='layout'>,</span> <span class='varid'>isDTD</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDDoctype</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDAttlist</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDElement</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDName</span>
-<a name="line-386"></a>		           <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-387"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
-<a name="line-388"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-389"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span><span class='layout'>)</span>
-<a name="line-390"></a>			     <span class='varop'>`guards`</span>
-<a name="line-391"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"a DTD part contains a not wellformed qualified Name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-392"></a>			   <span class='layout'>)</span>
-<a name="line-393"></a>
-<a name="line-394"></a>			 <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span>
-<a name="line-395"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-396"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_value</span>
-<a name="line-397"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-398"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span><span class='layout'>)</span>
-<a name="line-399"></a>			     <span class='varop'>`guards`</span>
-<a name="line-400"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"an ATTLIST declaration contains as attribute name a not wellformed qualified Name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-401"></a>			   <span class='layout'>)</span>
-<a name="line-402"></a>
-<a name="line-403"></a>                         <span class='layout'>,</span> <span class='varid'>isDTDEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDNotation</span>
-<a name="line-404"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-405"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
-<a name="line-406"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-407"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span><span class='layout'>)</span>
-<a name="line-408"></a>                             <span class='varop'>`guards`</span>
-<a name="line-409"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"an entity or notation declaration contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-410"></a>			   <span class='layout'>)</span>
-<a name="line-411"></a>			 <span class='keyglyph'>]</span>
-<a name="line-412"></a>      <span class='layout'>,</span> <span class='varid'>isPi</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getName</span>
-<a name="line-413"></a>		           <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-414"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span><span class='layout'>)</span>
-<a name="line-415"></a>			     <span class='varop'>`guards`</span>
-<a name="line-416"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"a PI contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-417"></a>			   <span class='layout'>)</span>
-<a name="line-418"></a>			 <span class='keyglyph'>]</span>
-<a name="line-419"></a>      <span class='keyglyph'>]</span>
-<a name="line-420"></a>    <span class='keyword'>where</span>
-<a name="line-421"></a>    <span class='varid'>nsError</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-422"></a>    <span class='varid'>nsError</span> <span class='varid'>msg</span>
-<a name="line-423"></a>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>nsErr</span> <span class='varid'>msg</span>
-<a name="line-424"></a>
-<a name="line-425"></a>    <span class='varid'>nsErr</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
-<a name="line-426"></a>    <span class='varid'>nsErr</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>msg</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span>
-<a name="line-427"></a>
-<a name="line-428"></a>    <span class='varid'>doubleOcc</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-429"></a>    <span class='varid'>doubleOcc</span> <span class='varid'>an</span>
-<a name="line-430"></a>	<span class='keyglyph'>=</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"multiple occurences of universal name for attributes of tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" : "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span> <span class='layout'>)</span>
-<a name="line-431"></a>
-<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-368"></a>      <span class='layout'>,</span> <span class='varid'>isDTD</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDDoctype</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDAttlist</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDElement</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDName</span>
+<a name="line-369"></a>		           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-370"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
+<a name="line-371"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-372"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span><span class='layout'>)</span>
+<a name="line-373"></a>			     <span class='varop'>`guards`</span>
+<a name="line-374"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"a DTD part contains a not wellformed qualified Name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-375"></a>			   <span class='layout'>)</span>
+<a name="line-376"></a>
+<a name="line-377"></a>			 <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span>
+<a name="line-378"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-379"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_value</span>
+<a name="line-380"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-381"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span><span class='layout'>)</span>
+<a name="line-382"></a>			     <span class='varop'>`guards`</span>
+<a name="line-383"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"an ATTLIST declaration contains as attribute name a not wellformed qualified Name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-384"></a>			   <span class='layout'>)</span>
+<a name="line-385"></a>
+<a name="line-386"></a>                         <span class='layout'>,</span> <span class='varid'>isDTDEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDNotation</span>
+<a name="line-387"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-388"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
+<a name="line-389"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-390"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span><span class='layout'>)</span>
+<a name="line-391"></a>                             <span class='varop'>`guards`</span>
+<a name="line-392"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"an entity or notation declaration contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-393"></a>			   <span class='layout'>)</span>
+<a name="line-394"></a>			 <span class='keyglyph'>]</span>
+<a name="line-395"></a>      <span class='layout'>,</span> <span class='varid'>isPi</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getName</span>
+<a name="line-396"></a>		           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-397"></a>			   <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span><span class='layout'>)</span>
+<a name="line-398"></a>			     <span class='varop'>`guards`</span>
+<a name="line-399"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"a PI contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-400"></a>			   <span class='layout'>)</span>
+<a name="line-401"></a>			 <span class='keyglyph'>]</span>
+<a name="line-402"></a>      <span class='keyglyph'>]</span>
+<a name="line-403"></a>    <span class='keyword'>where</span>
+<a name="line-404"></a>    <span class='varid'>nsError</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-405"></a>    <span class='varid'>nsError</span> <span class='varid'>msg</span>
+<a name="line-406"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>nsErr</span> <span class='varid'>msg</span>
+<a name="line-407"></a>
+<a name="line-408"></a>    <span class='varid'>nsErr</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-409"></a>    <span class='varid'>nsErr</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>msg</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span>
+<a name="line-410"></a>
+<a name="line-411"></a>    <span class='varid'>doubleOcc</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-412"></a>    <span class='varid'>doubleOcc</span> <span class='varid'>an</span>
+<a name="line-413"></a>	<span class='keyglyph'>=</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"multiple occurences of universal name for attributes of tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" : "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span> <span class='layout'>)</span>
+<a name="line-414"></a>
+<a name="line-415"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html
@@ -10,682 +10,695 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.Arrow.Pickle.Xml
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
-<a name="line-6"></a>   License    : MIT
-<a name="line-7"></a>
-<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-<a name="line-9"></a>   Stability  : experimental
-<a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id$
-<a name="line-12"></a>
-<a name="line-13"></a>Pickler functions for converting between user defined data types
-<a name="line-14"></a>and XmlTree data. Usefull for persistent storage and retreival
-<a name="line-15"></a>of arbitray data as XML documents
-<a name="line-16"></a>
-<a name="line-17"></a>This module is an adaptation of the pickler combinators
-<a name="line-18"></a>developed by Andrew Kennedy
-<a name="line-19"></a>( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )
-<a name="line-20"></a>
-<a name="line-21"></a>The difference to Kennedys approach is that the target is not
-<a name="line-22"></a>a list of Chars but a list of XmlTrees. The basic picklers will
-<a name="line-23"></a>convert data into XML text nodes. New are the picklers for
-<a name="line-24"></a>creating elements and attributes.
-<a name="line-25"></a>
-<a name="line-26"></a>One extension was neccessary: The unpickling may fail.
-<a name="line-27"></a>Therefore the unpickler has a Maybe result type.
-<a name="line-28"></a>Failure is used to unpickle optional elements
-<a name="line-29"></a>(Maybe data) and lists of arbitray length
-<a name="line-30"></a>
-<a name="line-31"></a>There is an example program demonstrating the use
-<a name="line-32"></a>of the picklers for a none trivial data structure.
-<a name="line-33"></a>(see \"examples\/arrows\/pickle\" directory)
-<a name="line-34"></a>
-<a name="line-35"></a>-}</span>
-<a name="line-36"></a>
-<a name="line-37"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-38"></a>
-<a name="line-39"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Xml</span>
-<a name="line-40"></a><span class='keyword'>where</span>
-<a name="line-41"></a>
-<a name="line-42"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-43"></a><span class='keyword'>import</span>		 <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
-<a name="line-44"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>
-<a name="line-45"></a>
-<a name="line-46"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-47"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>
-<a name="line-48"></a>
-<a name="line-49"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>
-<a name="line-50"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-51"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>
-<a name="line-52"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>  <span class='layout'>(</span><span class='varid'>xread</span><span class='layout'>)</span>
-<a name="line-53"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>          <span class='layout'>(</span><span class='varid'>xshowEscapeXml</span><span class='layout'>)</span>
-<a name="line-54"></a>
-<a name="line-55"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-56"></a>
-<a name="line-57"></a><a name="St"></a><span class='keyword'>data</span> <span class='conid'>St</span>		<span class='keyglyph'>=</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
-<a name="line-58"></a>		     <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
-<a name="line-59"></a>		     <span class='layout'>}</span>
-<a name="line-60"></a>
-<a name="line-61"></a><a name="PU"></a><span class='keyword'>data</span> <span class='conid'>PU</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>St</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
-<a name="line-62"></a>		     <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>St</span><span class='layout'>)</span>
-<a name="line-63"></a>		     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>::</span> <span class='conid'>Schema</span>
-<a name="line-64"></a>		     <span class='layout'>}</span>
-<a name="line-65"></a>
-<a name="line-66"></a><a name="emptySt"></a><span class='definition'>emptySt</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span>
-<a name="line-67"></a><span class='definition'>emptySt</span>		<span class='keyglyph'>=</span>  <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-68"></a>		      <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-69"></a>		      <span class='layout'>}</span>
-<a name="line-70"></a>
-<a name="line-71"></a><a name="addAtt"></a><span class='definition'>addAtt</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
-<a name="line-72"></a><span class='definition'>addAtt</span> <span class='varid'>x</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>attributes</span> <span class='varid'>s</span><span class='layout'>}</span>
-<a name="line-73"></a>
-<a name="line-74"></a><a name="addCont"></a><span class='definition'>addCont</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
-<a name="line-75"></a><span class='definition'>addCont</span> <span class='varid'>x</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>contents</span> <span class='varid'>s</span><span class='layout'>}</span>
-<a name="line-76"></a>
-<a name="line-77"></a><a name="dropCont"></a><span class='definition'>dropCont</span>	<span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
-<a name="line-78"></a><span class='definition'>dropCont</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-79"></a>
-<a name="line-80"></a><a name="getAtt"></a><span class='definition'>getAtt</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>
-<a name="line-81"></a><span class='definition'>getAtt</span> <span class='varid'>name</span> <span class='varid'>s</span>
-<a name="line-82"></a>    <span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>$</span>
-<a name="line-83"></a>      <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>attributes</span>
-<a name="line-84"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-85"></a>	      <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>name</span>
-<a name="line-86"></a>	    <span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-87"></a>
-<a name="line-88"></a><a name="getCont"></a><span class='definition'>getCont</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>
-<a name="line-89"></a><span class='definition'>getCont</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>.</span> <span class='varid'>contents</span> <span class='varop'>$</span> <span class='varid'>s</span>
-<a name="line-90"></a>
-<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-92"></a>
-<a name="line-93"></a><span class='comment'>-- | conversion of an arbitrary value into an XML document tree.</span>
-<a name="line-94"></a><span class='comment'>--</span>
-<a name="line-95"></a><span class='comment'>-- The pickler, first parameter, controls the conversion process.</span>
-<a name="line-96"></a><span class='comment'>-- Result is a complete document tree including a root node</span>
-<a name="line-97"></a>
-<a name="line-98"></a><a name="pickleDoc"></a><span class='definition'>pickleDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-99"></a><span class='definition'>pickleDoc</span> <span class='varid'>p</span> <span class='varid'>v</span>
-<a name="line-100"></a>    <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-101"></a>    <span class='keyword'>where</span>
-<a name="line-102"></a>    <span class='varid'>st</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>v</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
-<a name="line-103"></a>
-<a name="line-104"></a><span class='comment'>-- | Conversion of an XML document tree into an arbitrary data type</span>
-<a name="line-105"></a><span class='comment'>--</span>
-<a name="line-106"></a><span class='comment'>-- The inverse of 'pickleDoc'.</span>
-<a name="line-107"></a><span class='comment'>-- This law should hold for all picklers: @ unpickle px . pickle px $ v == Just v @.</span>
-<a name="line-108"></a><span class='comment'>-- Not every possible combination of picklers make sense.</span>
-<a name="line-109"></a><span class='comment'>-- For reconverting a value from an XML tree, is becomes neccessary,</span>
-<a name="line-110"></a><span class='comment'>-- to introduce \"enough\" markup for unpickling the value</span>
-<a name="line-111"></a>
-<a name="line-112"></a><a name="unpickleDoc"></a><span class='definition'>unpickleDoc</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>
-<a name="line-113"></a><span class='definition'>unpickleDoc</span> <span class='varid'>p</span> <span class='varid'>t</span>
-<a name="line-114"></a>    <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span> <span class='varid'>t</span>
-<a name="line-115"></a>	<span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varop'>$</span>  <span class='varid'>t</span>
-<a name="line-116"></a>				   <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>=</span>            <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>
-<a name="line-117"></a>				   <span class='layout'>}</span>
-<a name="line-118"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-119"></a>	<span class='keyglyph'>=</span> <span class='varid'>unpickleDoc</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-120"></a>
-<a name="line-121"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-122"></a>
-<a name="line-123"></a><span class='comment'>-- | The zero pickler</span>
-<a name="line-124"></a><span class='comment'>--</span>
-<a name="line-125"></a><span class='comment'>-- Encodes nothing, fails always during unpickling</span>
-<a name="line-126"></a>
-<a name="line-127"></a><a name="xpZero"></a><span class='definition'>xpZero</span>			<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-128"></a><span class='definition'>xpZero</span>			<span class='keyglyph'>=</span>  <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='varid'>snd</span>
-<a name="line-129"></a>			      <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-130"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scNull</span>
-<a name="line-131"></a>			      <span class='layout'>}</span>
-<a name="line-132"></a>
-<a name="line-133"></a><span class='comment'>-- unit pickler</span>
-<a name="line-134"></a>
-<a name="line-135"></a><a name="xpUnit"></a><span class='definition'>xpUnit</span>			<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>()</span>
-<a name="line-136"></a><span class='definition'>xpUnit</span>			<span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='conid'>()</span>
-<a name="line-137"></a>
-<a name="line-138"></a><span class='comment'>-- | Lift a value to a pickler</span>
-<a name="line-139"></a><span class='comment'>--</span>
-<a name="line-140"></a><span class='comment'>-- When pickling, nothing is encoded, when unpickling, the given value is inserted.</span>
-<a name="line-141"></a><span class='comment'>-- This pickler always succeeds.</span>
-<a name="line-142"></a>
-<a name="line-143"></a><a name="xpLift"></a><span class='definition'>xpLift</span>			<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-144"></a><span class='definition'>xpLift</span> <span class='varid'>x</span>		<span class='keyglyph'>=</span>  <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='varid'>snd</span>
-<a name="line-145"></a>			      <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-146"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>
-<a name="line-147"></a>			      <span class='layout'>}</span>
-<a name="line-148"></a>
-<a name="line-149"></a><span class='comment'>-- | Lift a Maybe value to a pickler.</span>
-<a name="line-150"></a><span class='comment'>--</span>
-<a name="line-151"></a><span class='comment'>-- @Nothing@ is mapped to the zero pickler, @Just x@ is pickled with @xpLift x@.</span>
-<a name="line-152"></a>
-<a name="line-153"></a><a name="xpLiftMaybe"></a><span class='definition'>xpLiftMaybe</span>		<span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-154"></a><span class='definition'>xpLiftMaybe</span> <span class='varid'>v</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpLiftMaybe'</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scOption</span> <span class='varid'>scEmpty</span> <span class='layout'>}</span>
-<a name="line-155"></a>    <span class='keyword'>where</span>
-<a name="line-156"></a>    <span class='varid'>xpLiftMaybe'</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>xpZero</span>
-<a name="line-157"></a>    <span class='varid'>xpLiftMaybe'</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='varid'>x</span>
-<a name="line-158"></a>
-<a name="line-159"></a>
-<a name="line-160"></a><span class='comment'>-- | pickle\/unpickle combinator for sequence and choice.</span>
-<a name="line-161"></a><span class='comment'>--</span>
-<a name="line-162"></a><span class='comment'>-- When the first unpickler fails,</span>
-<a name="line-163"></a><span class='comment'>-- the second one is taken, else the third one configured with the result from the first</span>
-<a name="line-164"></a><span class='comment'>-- is taken. This pickler is a generalisation for 'xpSeq' and 'xpChoice' .</span>
-<a name="line-165"></a><span class='comment'>--</span>
-<a name="line-166"></a><span class='comment'>-- The schema must be attached later, e.g. in xpPair or other higher level combinators</span>
-<a name="line-167"></a>
-<a name="line-168"></a><a name="xpCondSeq"></a><span class='definition'>xpCondSeq</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
-<a name="line-169"></a><span class='definition'>xpCondSeq</span> <span class='varid'>pd</span> <span class='varid'>f</span> <span class='varid'>pa</span> <span class='varid'>k</span>
-<a name="line-170"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-171"></a>	                   <span class='keyword'>let</span>
-<a name="line-172"></a>			   <span class='varid'>a</span>  <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>b</span>
-<a name="line-173"></a>			   <span class='varid'>pb</span> <span class='keyglyph'>=</span> <span class='varid'>k</span> <span class='varid'>a</span>
-<a name="line-174"></a>			   <span class='keyword'>in</span>
-<a name="line-175"></a>			   <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>appPickle</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-176"></a>			 <span class='layout'>)</span>
-<a name="line-177"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-178"></a>			   <span class='keyword'>let</span>
-<a name="line-179"></a>			   <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>s'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varid'>s</span>
-<a name="line-180"></a>			   <span class='keyword'>in</span>
-<a name="line-181"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
-<a name="line-182"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appUnPickle</span> <span class='varid'>pd</span>     <span class='varid'>s</span>
-<a name="line-183"></a>			   <span class='conid'>Just</span> <span class='varid'>a'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appUnPickle</span> <span class='layout'>(</span><span class='varid'>k</span> <span class='varid'>a'</span><span class='layout'>)</span> <span class='varid'>s'</span>
-<a name="line-184"></a>			 <span class='layout'>)</span>
-<a name="line-185"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>undefined</span>
-<a name="line-186"></a>	 <span class='layout'>}</span>
-<a name="line-187"></a>
-<a name="line-188"></a>
-<a name="line-189"></a><span class='comment'>-- | Combine two picklers sequentially.</span>
-<a name="line-190"></a><span class='comment'>--</span>
-<a name="line-191"></a><span class='comment'>-- If the first fails during</span>
-<a name="line-192"></a><span class='comment'>-- unpickling, the whole unpickler fails</span>
-<a name="line-193"></a>
-<a name="line-194"></a><a name="xpSeq"></a><span class='definition'>xpSeq</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
-<a name="line-195"></a><span class='definition'>xpSeq</span>	<span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>xpZero</span>
-<a name="line-196"></a>
-<a name="line-197"></a>
-<a name="line-198"></a><span class='comment'>-- | combine tow picklers with a choice</span>
-<a name="line-199"></a><span class='comment'>--</span>
-<a name="line-200"></a><span class='comment'>-- Run two picklers in sequence like with xpSeq.</span>
-<a name="line-201"></a><span class='comment'>-- When during unpickling the first one fails,</span>
-<a name="line-202"></a><span class='comment'>-- an alternative pickler (first argument) is applied.</span>
-<a name="line-203"></a><span class='comment'>-- This pickler is only used as combinator for unpickling.</span>
-<a name="line-204"></a> 
-<a name="line-205"></a><a name="xpChoice"></a><span class='definition'>xpChoice</span>		<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
-<a name="line-206"></a><span class='definition'>xpChoice</span> <span class='varid'>pb</span>	<span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>pb</span> <span class='varid'>undefined</span>
-<a name="line-207"></a>
-<a name="line-208"></a>
-<a name="line-209"></a><span class='comment'>-- | map value into another domain and apply pickler there</span>
-<a name="line-210"></a><span class='comment'>--</span>
-<a name="line-211"></a><span class='comment'>-- One of the most often used picklers.</span>
-<a name="line-212"></a>
-<a name="line-213"></a><a name="xpWrap"></a><span class='definition'>xpWrap</span>			<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
-<a name="line-214"></a><span class='definition'>xpWrap</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>j</span><span class='layout'>)</span> <span class='varid'>pa</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpSeq</span> <span class='varid'>j</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='varop'>.</span> <span class='varid'>i</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>theSchema</span> <span class='varid'>pa</span> <span class='layout'>}</span>
-<a name="line-215"></a>
-<a name="line-216"></a><span class='comment'>-- | like 'xpWrap', but if the inverse mapping is undefined, the unpickler fails</span>
-<a name="line-217"></a><span class='comment'>--</span>
-<a name="line-218"></a><span class='comment'>-- Map a value into another domain. If the inverse mapping is</span>
-<a name="line-219"></a><span class='comment'>-- undefined (Nothing), the unpickler fails</span>
-<a name="line-220"></a>
-<a name="line-221"></a><a name="xpWrapMaybe"></a><span class='definition'>xpWrapMaybe</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
-<a name="line-222"></a><span class='definition'>xpWrapMaybe</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>j</span><span class='layout'>)</span> <span class='varid'>pa</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpSeq</span> <span class='varid'>j</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLiftMaybe</span> <span class='varop'>.</span> <span class='varid'>i</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>theSchema</span> <span class='varid'>pa</span> <span class='layout'>}</span>
-<a name="line-223"></a>
-<a name="line-224"></a><span class='comment'>-- | pickle a pair of values sequentially</span>
-<a name="line-225"></a><span class='comment'>--</span>
-<a name="line-226"></a><span class='comment'>-- Used for pairs or together with wrap for pickling</span>
-<a name="line-227"></a><span class='comment'>-- algebraic data types with two components</span>
-<a name="line-228"></a>
-<a name="line-229"></a><a name="xpPair"></a><span class='definition'>xpPair</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span>
-<a name="line-230"></a><span class='definition'>xpPair</span> <span class='varid'>pa</span> <span class='varid'>pb</span>
-<a name="line-231"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpSeq</span> <span class='varid'>fst</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-232"></a>        <span class='varid'>xpSeq</span> <span class='varid'>snd</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-233"></a>        <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-234"></a>      <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scSeq</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pb</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-235"></a>
-<a name="line-236"></a><span class='comment'>-- | Like 'xpPair' but for triples</span>
-<a name="line-237"></a>
-<a name="line-238"></a><a name="xpTriple"></a><span class='definition'>xpTriple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-239"></a><span class='definition'>xpTriple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span>
-<a name="line-240"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toTriple</span><span class='layout'>,</span> <span class='varid'>fromTriple</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='varid'>pc</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-241"></a>    <span class='keyword'>where</span>
-<a name="line-242"></a>    <span class='varid'>toTriple</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span> <span class='layout'>)</span>
-<a name="line-243"></a>    <span class='varid'>fromTriple</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-244"></a>
-<a name="line-245"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 4-tuples</span>
-<a name="line-246"></a>
-<a name="line-247"></a><a name="xp4Tuple"></a><span class='definition'>xp4Tuple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span>
-<a name="line-248"></a><span class='definition'>xp4Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span>
-<a name="line-249"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toQuad</span><span class='layout'>,</span> <span class='varid'>fromQuad</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='varid'>pd</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-250"></a>    <span class='keyword'>where</span>
-<a name="line-251"></a>    <span class='varid'>toQuad</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span>  <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span>  <span class='layout'>)</span>
-<a name="line-252"></a>    <span class='varid'>fromQuad</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span>   <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span>  <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-253"></a>
-<a name="line-254"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 5-tuples</span>
-<a name="line-255"></a>
-<a name="line-256"></a><a name="xp5Tuple"></a><span class='definition'>xp5Tuple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span>
-<a name="line-257"></a><span class='definition'>xp5Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span> <span class='varid'>pe</span>
-<a name="line-258"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toQuint</span><span class='layout'>,</span> <span class='varid'>fromQuint</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pd</span> <span class='varid'>pe</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-259"></a>    <span class='keyword'>where</span>
-<a name="line-260"></a>    <span class='varid'>toQuint</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span>  <span class='varid'>c</span><span class='layout'>,</span>  <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span>   <span class='layout'>)</span>
-<a name="line-261"></a>    <span class='varid'>fromQuint</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span>   <span class='varid'>c</span><span class='layout'>,</span>   <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span>   <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-262"></a>
-<a name="line-263"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 6-tuples</span>
-<a name="line-264"></a>
-<a name="line-265"></a><a name="xp6Tuple"></a><span class='definition'>xp6Tuple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>f</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span>
-<a name="line-266"></a><span class='definition'>xp6Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span> <span class='varid'>pe</span> <span class='varid'>pf</span>
-<a name="line-267"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toSix</span><span class='layout'>,</span> <span class='varid'>fromSix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pd</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pe</span> <span class='varid'>pf</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-268"></a>    <span class='keyword'>where</span>
-<a name="line-269"></a>    <span class='varid'>toSix</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span>  <span class='varid'>c</span><span class='layout'>,</span>  <span class='varid'>d</span><span class='layout'>,</span>  <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span>    <span class='layout'>)</span>
-<a name="line-270"></a>    <span class='varid'>fromSix</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span>   <span class='varid'>c</span><span class='layout'>,</span>   <span class='varid'>d</span><span class='layout'>,</span>   <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-271"></a>
-<a name="line-272"></a><span class='comment'>-- | Pickle a string into an XML text node</span>
-<a name="line-273"></a><span class='comment'>--</span>
-<a name="line-274"></a><span class='comment'>-- One of the most often used primitive picklers. Attention:</span>
-<a name="line-275"></a><span class='comment'>-- For pickling empty strings use 'xpText0'. If the text has a more</span>
-<a name="line-276"></a><span class='comment'>-- specific datatype than xsd:string, use 'xpTextDT'</span>
-<a name="line-277"></a>
-<a name="line-278"></a><a name="xpText"></a><span class='definition'>xpText</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>
-<a name="line-279"></a><span class='definition'>xpText</span>	<span class='keyglyph'>=</span> <span class='varid'>xpTextDT</span> <span class='varid'>scString1</span>
-<a name="line-280"></a>
-<a name="line-281"></a><span class='comment'>-- | Pickle a string into an XML text node</span>
-<a name="line-282"></a><span class='comment'>--</span>
-<a name="line-283"></a><span class='comment'>-- Text pickler with a description of the structure of the text</span>
-<a name="line-284"></a><span class='comment'>-- by a schema. A schema for a data type can be defined by 'Text.XML.HXT.Arrow.Pickle.Schema.scDT'.</span>
-<a name="line-285"></a><span class='comment'>-- In 'Text.XML.HXT.Arrow.Pickle.Schema' there are some more functions for creating</span>
-<a name="line-286"></a><span class='comment'>-- simple datatype descriptions.</span>
-<a name="line-287"></a>
-<a name="line-288"></a><a name="xpTextDT"></a><span class='definition'>xpTextDT</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>String</span>
-<a name="line-289"></a><span class='definition'>xpTextDT</span> <span class='varid'>sc</span>
-<a name="line-290"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>st</span>
-<a name="line-291"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleString</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-292"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>sc</span>
-<a name="line-293"></a>	 <span class='layout'>}</span>
-<a name="line-294"></a>    <span class='keyword'>where</span>
-<a name="line-295"></a>    <span class='varid'>unpickleString</span> <span class='varid'>st</span>
-<a name="line-296"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-297"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
-<a name="line-298"></a>	  <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varid'>t</span>
-<a name="line-299"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-300"></a>
-<a name="line-301"></a><span class='comment'>-- | Pickle a possibly empty string into an XML node.</span>
-<a name="line-302"></a><span class='comment'>--</span>
-<a name="line-303"></a><span class='comment'>-- Must be used in all places, where empty strings are legal values.</span>
-<a name="line-304"></a><span class='comment'>-- If the content of an element can be an empty string, this string disapears</span>
-<a name="line-305"></a><span class='comment'>-- during storing the DOM into a document and reparse the document.</span>
-<a name="line-306"></a><span class='comment'>-- So the empty text node becomes nothing, and the pickler must deliver an empty string,</span>
-<a name="line-307"></a><span class='comment'>-- if there is no text node in the document.</span>
-<a name="line-308"></a>
-<a name="line-309"></a><a name="xpText0"></a><span class='definition'>xpText0</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>
-<a name="line-310"></a><span class='definition'>xpText0</span>	<span class='keyglyph'>=</span> <span class='varid'>xpText0DT</span> <span class='varid'>scString1</span>
-<a name="line-311"></a>
-<a name="line-312"></a><span class='comment'>-- | Pickle a possibly empty string with a datatype description into an XML node.</span>
-<a name="line-313"></a><span class='comment'>--</span>
-<a name="line-314"></a><span class='comment'>-- Like 'xpText0' but with extra Parameter for datatype description as in 'xpTextDT'.</span>
-<a name="line-315"></a>
-<a name="line-316"></a><a name="xpText0DT"></a><span class='definition'>xpText0DT</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>String</span>
-<a name="line-317"></a><span class='definition'>xpText0DT</span> <span class='varid'>sc</span>
-<a name="line-318"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='str'>""</span><span class='layout'>,</span> <span class='varid'>emptyToNothing</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xpOption</span> <span class='varop'>$</span> <span class='varid'>xpTextDT</span> <span class='varid'>sc</span>
-<a name="line-319"></a>    <span class='keyword'>where</span>
-<a name="line-320"></a>    <span class='varid'>emptyToNothing</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-321"></a>    <span class='varid'>emptyToNothing</span> <span class='varid'>x</span>  <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>
-<a name="line-322"></a>
-<a name="line-323"></a><span class='comment'>-- | Pickle an arbitrary value by applyling show during pickling</span>
-<a name="line-324"></a><span class='comment'>-- and read during unpickling.</span>
-<a name="line-325"></a><span class='comment'>--</span>
-<a name="line-326"></a><span class='comment'>-- Real pickling is then done with 'xpText'.</span>
-<a name="line-327"></a><span class='comment'>-- One of the most often used pimitive picklers. Applicable for all</span>
-<a name="line-328"></a><span class='comment'>-- types which are instances of @Read@ and @Show@</span>
-<a name="line-329"></a>
-<a name="line-330"></a><a name="xpPrim"></a><span class='definition'>xpPrim</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Read</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-331"></a><span class='definition'>xpPrim</span>
-<a name="line-332"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrapMaybe</span> <span class='layout'>(</span><span class='varid'>readMaybe</span><span class='layout'>,</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>xpText</span>
-<a name="line-333"></a>    <span class='keyword'>where</span>
-<a name="line-334"></a>    <span class='varid'>readMaybe</span>	<span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>
-<a name="line-335"></a>    <span class='varid'>readMaybe</span> <span class='varid'>str</span>
-<a name="line-336"></a>	<span class='keyglyph'>=</span> <span class='varid'>val</span> <span class='layout'>(</span><span class='varid'>reads</span> <span class='varid'>str</span><span class='layout'>)</span>
-<a name="line-337"></a>	<span class='keyword'>where</span>
-<a name="line-338"></a>	<span class='varid'>val</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>
-<a name="line-339"></a>	<span class='varid'>val</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-340"></a>
-<a name="line-341"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-342"></a>
-<a name="line-343"></a><span class='comment'>-- | Pickle an XmlTree by just adding it</span>
-<a name="line-344"></a><span class='comment'>--</span>
-<a name="line-345"></a><span class='comment'>-- Usefull for components of type XmlTree in other data structures</span>
-<a name="line-346"></a>
-<a name="line-347"></a><a name="xpTree"></a><span class='definition'>xpTree</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>XmlTree</span>
-<a name="line-348"></a><span class='definition'>xpTree</span>	<span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addCont</span> <span class='varid'>s</span> <span class='varid'>st</span>
-<a name="line-349"></a>	     <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleTree</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-350"></a>	     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='conid'>Any</span>
-<a name="line-351"></a>	     <span class='layout'>}</span>
-<a name="line-352"></a>    <span class='keyword'>where</span>
-<a name="line-353"></a>    <span class='varid'>unpickleTree</span> <span class='varid'>st</span>
-<a name="line-354"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-355"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
-<a name="line-356"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-357"></a>
-<a name="line-358"></a><span class='comment'>-- | Pickle a whole list of XmlTrees by just adding the list, unpickle is done by taking all element contens.</span>
-<a name="line-359"></a><span class='comment'>--</span>
-<a name="line-360"></a><span class='comment'>-- This pickler should always combined with 'xpElem' for taking the whole contents of an element.</span>
-<a name="line-361"></a>
-<a name="line-362"></a><a name="xpTrees"></a><span class='definition'>xpTrees</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
-<a name="line-363"></a><span class='definition'>xpTrees</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>xpTree</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='conid'>Any</span> <span class='layout'>}</span>
-<a name="line-364"></a>
-<a name="line-365"></a><span class='comment'>-- | Pickle a string representing XML contents by inserting the tree representation into the XML document.</span>
-<a name="line-366"></a><span class='comment'>--</span>
-<a name="line-367"></a><span class='comment'>-- Unpickling is done by converting the contents with</span>
-<a name="line-368"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.xshowEscapeXml' into a string,</span>
-<a name="line-369"></a><span class='comment'>-- this function will escape all XML special chars, such that pickling the value back becomes save.</span>
-<a name="line-370"></a><span class='comment'>-- Pickling is done with 'Text.XML.HXT.Arrow.ReadDocument.xread'</span>
-<a name="line-371"></a>
-<a name="line-372"></a><a name="xpXmlText"></a><span class='definition'>xpXmlText</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>
-<a name="line-373"></a><span class='definition'>xpXmlText</span>
-<a name="line-374"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>showXML</span><span class='layout'>,</span> <span class='varid'>readXML</span> <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xpTrees</span>
-<a name="line-375"></a>    <span class='keyword'>where</span>
-<a name="line-376"></a>    <span class='varid'>showXML</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>xshowEscapeXml</span> <span class='varid'>unlistA</span> <span class='layout'>)</span>
-<a name="line-377"></a>    <span class='varid'>readXML</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>xread</span>
-<a name="line-378"></a>
-<a name="line-379"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-380"></a>
-<a name="line-381"></a><span class='comment'>-- | Encoding of optional data by ignoring the Nothing case during pickling</span>
-<a name="line-382"></a><span class='comment'>-- and relying on failure during unpickling to recompute the Nothing case</span>
-<a name="line-383"></a><span class='comment'>--</span>
-<a name="line-384"></a><span class='comment'>-- The default pickler for Maybe types</span>
-<a name="line-385"></a>
-<a name="line-386"></a><a name="xpOption"></a><span class='definition'>xpOption</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-387"></a><span class='definition'>xpOption</span> <span class='varid'>pa</span>
-<a name="line-388"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-389"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
-<a name="line-390"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>
-<a name="line-391"></a>			   <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-392"></a>			 <span class='layout'>)</span>
-<a name="line-393"></a>
-<a name="line-394"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>
-<a name="line-395"></a>	                 <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='varop'>.</span> <span class='conid'>Just</span><span class='layout'>)</span>
-<a name="line-396"></a>
-<a name="line-397"></a>         <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scOption</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
-<a name="line-398"></a>	 <span class='layout'>}</span>
-<a name="line-399"></a>
-<a name="line-400"></a><span class='comment'>-- | Optional conversion with default value</span>
-<a name="line-401"></a><span class='comment'>--</span>
-<a name="line-402"></a><span class='comment'>-- The default value is not encoded in the XML document,</span>
-<a name="line-403"></a><span class='comment'>-- during unpickling the default value is inserted if the pickler fails</span>
-<a name="line-404"></a>
-<a name="line-405"></a><a name="xpDefault"></a><span class='definition'>xpDefault</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Eq</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-406"></a><span class='definition'>xpDefault</span> <span class='varid'>df</span>
-<a name="line-407"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>df</span>
-<a name="line-408"></a>	     <span class='layout'>,</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>df</span> <span class='keyword'>then</span> <span class='conid'>Nothing</span> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varid'>x</span>
-<a name="line-409"></a>	     <span class='layout'>)</span> <span class='varop'>.</span>
-<a name="line-410"></a>      <span class='varid'>xpOption</span>
-<a name="line-411"></a>
-<a name="line-412"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-413"></a>
-<a name="line-414"></a><span class='comment'>-- | Encoding of list values by pickling all list elements sequentially.</span>
-<a name="line-415"></a><span class='comment'>--</span>
-<a name="line-416"></a><span class='comment'>-- Unpickler relies on failure for detecting the end of the list.</span>
-<a name="line-417"></a><span class='comment'>-- The standard pickler for lists. Can also be used in combination with 'xpWrap'</span>
-<a name="line-418"></a><span class='comment'>-- for constructing set and map picklers</span>
-<a name="line-419"></a>
-<a name="line-420"></a><a name="xpList"></a><span class='definition'>xpList</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-421"></a><span class='definition'>xpList</span> <span class='varid'>pa</span>
-<a name="line-422"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-423"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
-<a name="line-424"></a>			   <span class='conid'>[]</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>
-<a name="line-425"></a>			   <span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appPickle</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-426"></a>			 <span class='layout'>)</span>
-<a name="line-427"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>
-<a name="line-428"></a>                         <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>pa</span>
-<a name="line-429"></a>	                   <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xpSeq</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>xs</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-430"></a>
-<a name="line-431"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scList</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
-<a name="line-432"></a>	 <span class='layout'>}</span>
-<a name="line-433"></a>      <span class='keyword'>where</span>
-<a name="line-434"></a>      <span class='varid'>pc</span> <span class='keyglyph'>=</span> <span class='varid'>xpSeq</span> <span class='varid'>head</span>  <span class='varid'>pa</span>       <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-435"></a>	   <span class='varid'>xpSeq</span> <span class='varid'>tail</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>xs</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-436"></a>	   <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-437"></a>
-<a name="line-438"></a><span class='comment'>-- | Encoding of a none empty list of values</span>
-<a name="line-439"></a><span class='comment'>--</span>
-<a name="line-440"></a><span class='comment'>-- Attention: when calling this pickler with an empty list,</span>
-<a name="line-441"></a><span class='comment'>-- an internal error \"head of empty list is raised\".</span>
-<a name="line-442"></a>
-<a name="line-443"></a><a name="xpList1"></a><span class='definition'>xpList1</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-444"></a><span class='definition'>xpList1</span> <span class='varid'>pa</span>
-<a name="line-445"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span>
-<a name="line-446"></a>	       <span class='layout'>,</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span>
-<a name="line-447"></a>	       <span class='layout'>)</span> <span class='varop'>$</span>
-<a name="line-448"></a>	<span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span>
-<a name="line-449"></a>      <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scList1</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-450"></a>
-<a name="line-451"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-452"></a>
-<a name="line-453"></a><span class='comment'>-- | Standard pickler for maps</span>
-<a name="line-454"></a><span class='comment'>--</span>
-<a name="line-455"></a><span class='comment'>-- This pickler converts a map into a list of pairs.</span>
-<a name="line-456"></a><span class='comment'>-- All key value pairs are mapped to an element with name (1.arg),</span>
-<a name="line-457"></a><span class='comment'>-- the key is encoded as an attribute named by the 2. argument,</span>
-<a name="line-458"></a><span class='comment'>-- the 3. arg is the pickler for the keys, the last one for the values</span>
-<a name="line-459"></a>
-<a name="line-460"></a><a name="xpMap"></a><span class='definition'>xpMap</span>	<span class='keyglyph'>::</span> <span class='conid'>Ord</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='varid'>k</span> <span class='varid'>v</span><span class='layout'>)</span>
-<a name="line-461"></a><span class='definition'>xpMap</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>xpk</span> <span class='varid'>xpv</span>
-<a name="line-462"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span>
-<a name="line-463"></a>	     <span class='layout'>,</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>toList</span>
-<a name="line-464"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>
-<a name="line-465"></a>      <span class='varid'>xpList</span> <span class='varop'>$</span>
-<a name="line-466"></a>      <span class='varid'>xpElem</span> <span class='varid'>en</span> <span class='varop'>$</span>
-<a name="line-467"></a>      <span class='varid'>xpPair</span> <span class='layout'>(</span> <span class='varid'>xpAttr</span> <span class='varid'>an</span> <span class='varop'>$</span> <span class='varid'>xpk</span> <span class='layout'>)</span> <span class='varid'>xpv</span>
-<a name="line-468"></a>
-<a name="line-469"></a>
-<a name="line-470"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-471"></a>
-<a name="line-472"></a><span class='comment'>-- | Pickler for sum data types.</span>
-<a name="line-473"></a><span class='comment'>--</span>
-<a name="line-474"></a><span class='comment'>-- Every constructor is mapped to an index into the list of picklers.</span>
-<a name="line-475"></a><span class='comment'>-- The index is used only during pickling, not during unpickling, there the 1. match is taken</span>
-<a name="line-476"></a>
-<a name="line-477"></a><a name="xpAlt"></a><span class='definition'>xpAlt</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>PU</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-478"></a><span class='definition'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps</span>
-<a name="line-479"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-480"></a>			   <span class='keyword'>let</span>
-<a name="line-481"></a>			   <span class='varid'>pa</span> <span class='keyglyph'>=</span> <span class='varid'>ps</span> <span class='varop'>!!</span> <span class='layout'>(</span><span class='varid'>tag</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-482"></a>			   <span class='keyword'>in</span>
-<a name="line-483"></a>			   <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-484"></a>			 <span class='layout'>)</span>
-<a name="line-485"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>
-<a name="line-486"></a>	                 <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>ps</span> <span class='keyword'>of</span>
-<a name="line-487"></a>			   <span class='conid'>[]</span>     <span class='keyglyph'>-&gt;</span> <span class='varid'>xpZero</span>
-<a name="line-488"></a>			   <span class='varid'>pa</span><span class='conop'>:</span><span class='varid'>ps1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps1</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='varid'>xpLift</span>
-<a name="line-489"></a>			 <span class='layout'>)</span>
-<a name="line-490"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scAlts</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>theSchema</span> <span class='varid'>ps</span><span class='layout'>)</span>
-<a name="line-491"></a>	 <span class='layout'>}</span>
-<a name="line-492"></a>
-<a name="line-493"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-494"></a>
-<a name="line-495"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element</span>
-<a name="line-496"></a><span class='comment'>--</span>
-<a name="line-497"></a><span class='comment'>-- Extra parameter is the element name. THE pickler for constructing</span>
-<a name="line-498"></a><span class='comment'>-- nested structures</span>
-<a name="line-499"></a><span class='comment'>--</span>
-<a name="line-500"></a><span class='comment'>-- Example:</span>
-<a name="line-501"></a><span class='comment'>--</span>
-<a name="line-502"></a><span class='comment'>-- &gt; xpElem "number" $ xpickle</span>
-<a name="line-503"></a><span class='comment'>--</span>
-<a name="line-504"></a><span class='comment'>-- will map an (42::Int) onto</span>
-<a name="line-505"></a><span class='comment'>--</span>
-<a name="line-506"></a><span class='comment'>-- &gt; &lt;number&gt;42&lt;/number&gt;</span>
-<a name="line-507"></a>
-<a name="line-508"></a><a name="xpElem"></a><span class='definition'>xpElem</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-509"></a><span class='definition'>xpElem</span> <span class='varid'>name</span> <span class='varid'>pa</span>
-<a name="line-510"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-511"></a>			   <span class='keyword'>let</span>
-<a name="line-512"></a>	                   <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
-<a name="line-513"></a>			   <span class='keyword'>in</span>
-<a name="line-514"></a>			   <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>
-<a name="line-515"></a>			 <span class='layout'>)</span>
-<a name="line-516"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleElement</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-517"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scElem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
-<a name="line-518"></a>	 <span class='layout'>}</span>
-<a name="line-519"></a>      <span class='keyword'>where</span>
-<a name="line-520"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>
-<a name="line-521"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-522"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
-<a name="line-523"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span> <span class='varid'>t</span>
-<a name="line-524"></a>	    <span class='keyword'>if</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span> <span class='varop'>/=</span> <span class='varid'>name</span>
-<a name="line-525"></a>	       <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='str'>"element name does not match"</span>
-<a name="line-526"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>
-<a name="line-527"></a>		    <span class='keyword'>let</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>
-<a name="line-528"></a>		    <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>
-<a name="line-529"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span><span class='layout'>}</span>
-<a name="line-530"></a>		    <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-531"></a>
-<a name="line-532"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-533"></a>
-<a name="line-534"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element with an attribute with given value</span>
-<a name="line-535"></a><span class='comment'>--</span>
-<a name="line-536"></a><span class='comment'>-- To make XML structures flexible but limit the number of different elements, it's sometimes</span>
-<a name="line-537"></a><span class='comment'>-- useful to use a kind of generic element with a key value structure</span>
-<a name="line-538"></a><span class='comment'>--</span>
-<a name="line-539"></a><span class='comment'>-- Example:</span>
-<a name="line-540"></a><span class='comment'>--</span>
-<a name="line-541"></a><span class='comment'>-- &gt; &lt;attr name="key1"&gt;value1&lt;/attr&gt;</span>
-<a name="line-542"></a><span class='comment'>-- &gt; &lt;attr name="key2"&gt;value2&lt;/attr&gt;</span>
-<a name="line-543"></a><span class='comment'>-- &gt; &lt;attr name="key3"&gt;value3&lt;/attr&gt;</span>
-<a name="line-544"></a><span class='comment'>--</span>
-<a name="line-545"></a><span class='comment'>-- the Haskell datatype may look like this</span>
-<a name="line-546"></a><span class='comment'>--</span>
-<a name="line-547"></a><span class='comment'>-- &gt; type T = T { key1 :: Int ; key2 :: String ; key3 :: Double }</span>
-<a name="line-548"></a><span class='comment'>--</span>
-<a name="line-549"></a><span class='comment'>-- Then the picker for that type looks like this</span>
-<a name="line-550"></a><span class='comment'>--</span>
-<a name="line-551"></a><span class='comment'>-- &gt; xpT :: PU T</span>
-<a name="line-552"></a><span class='comment'>-- &gt; xpT = xpWrap ( uncurry3 T, \ t -&gt; (key1 t, key2 t, key3 t) ) $</span>
-<a name="line-553"></a><span class='comment'>-- &gt;       xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)</span>
-<a name="line-554"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)</span>
-<a name="line-555"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key3" $ xpickle)</span>
-<a name="line-556"></a>
-<a name="line-557"></a><a name="xpElemWithAttrValue"></a><span class='definition'>xpElemWithAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-558"></a><span class='definition'>xpElemWithAttrValue</span> <span class='varid'>name</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='varid'>pa</span>
-<a name="line-559"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-560"></a>			   <span class='keyword'>let</span>
-<a name="line-561"></a>	                   <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa'</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
-<a name="line-562"></a>			   <span class='keyword'>in</span>
-<a name="line-563"></a>			   <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>
-<a name="line-564"></a>			 <span class='layout'>)</span>
-<a name="line-565"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleElement</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-566"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scElem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa'</span><span class='layout'>)</span>
-<a name="line-567"></a>	 <span class='layout'>}</span>
-<a name="line-568"></a>      <span class='keyword'>where</span>
-<a name="line-569"></a>      <span class='varid'>pa'</span> <span class='keyglyph'>=</span> <span class='varid'>xpAddFixedAttr</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='varop'>$</span> <span class='varid'>pa</span>
-<a name="line-570"></a>      <span class='varid'>noMatch</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>isElem</span>
-<a name="line-571"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-572"></a>			       <span class='varid'>hasName</span> <span class='varid'>name</span>
-<a name="line-573"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-574"></a>			       <span class='varid'>hasAttrValue</span> <span class='varid'>an</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>av</span><span class='layout'>)</span>
-<a name="line-575"></a>			     <span class='layout'>)</span>
-<a name="line-576"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>
-<a name="line-577"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-578"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
-<a name="line-579"></a>	    <span class='keyword'>if</span> <span class='varid'>noMatch</span> <span class='varid'>t</span>
-<a name="line-580"></a>	       <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='str'>"element name or attr value does not match"</span>
-<a name="line-581"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>
-<a name="line-582"></a>		    <span class='keyword'>let</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>
-<a name="line-583"></a>		    <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>
-<a name="line-584"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span><span class='layout'>}</span>
-<a name="line-585"></a>		    <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-586"></a>
-<a name="line-587"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-588"></a>
-<a name="line-589"></a><span class='comment'>-- | Pickler for storing\/retreiving data into\/from an attribute value</span>
-<a name="line-590"></a><span class='comment'>--</span>
-<a name="line-591"></a><span class='comment'>-- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler</span>
-<a name="line-592"></a>
-<a name="line-593"></a><a name="xpAttr"></a><span class='definition'>xpAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-594"></a><span class='definition'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>pa</span>
-<a name="line-595"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-596"></a>			   <span class='keyword'>let</span>
-<a name="line-597"></a>			   <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
-<a name="line-598"></a>			   <span class='keyword'>in</span>
-<a name="line-599"></a>			   <span class='varid'>addAtt</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>
-<a name="line-600"></a>			 <span class='layout'>)</span>
-<a name="line-601"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleAttr</span> <span class='varid'>st</span><span class='layout'>)</span>
-<a name="line-602"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scAttr</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
-<a name="line-603"></a>	 <span class='layout'>}</span>
-<a name="line-604"></a>      <span class='keyword'>where</span>
-<a name="line-605"></a>      <span class='varid'>unpickleAttr</span> <span class='varid'>st</span>
-<a name="line-606"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-607"></a>	    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getAtt</span> <span class='varid'>name</span> <span class='varid'>st</span>
-<a name="line-608"></a>	    <span class='keyword'>let</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>a</span>
-<a name="line-609"></a>	    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>av</span><span class='layout'>}</span>
-<a name="line-610"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>	<span class='comment'>-- attribute is not removed from attribute list,</span>
-<a name="line-611"></a>					<span class='comment'>-- attributes are selected by name</span>
-<a name="line-612"></a>
-<a name="line-613"></a><span class='comment'>-- | Add an optional attribute for an optional value (Maybe a).</span>
-<a name="line-614"></a>
-<a name="line-615"></a><a name="xpAttrImplied"></a><span class='definition'>xpAttrImplied</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-616"></a><span class='definition'>xpAttrImplied</span> <span class='varid'>name</span> <span class='varid'>pa</span>
-<a name="line-617"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varop'>$</span> <span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>pa</span>
-<a name="line-618"></a>
-<a name="line-619"></a><a name="xpAttrFixed"></a><span class='definition'>xpAttrFixed</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>()</span>
-<a name="line-620"></a><span class='definition'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span>
-<a name="line-621"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpWrapMaybe</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>val</span> <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='conid'>()</span> <span class='keyword'>else</span> <span class='conid'>Nothing</span>
-<a name="line-622"></a>		    <span class='layout'>,</span> <span class='varid'>const</span> <span class='varid'>val</span>
-<a name="line-623"></a>		    <span class='layout'>)</span> <span class='varop'>$</span>
-<a name="line-624"></a>	<span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>xpText</span>
-<a name="line-625"></a>      <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scAttr</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>scFixed</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-626"></a>
-<a name="line-627"></a><span class='comment'>-- | Add an attribute with a fixed value.</span>
-<a name="line-628"></a><span class='comment'>--</span>
-<a name="line-629"></a><span class='comment'>-- Useful e.g. to declare namespaces. Is implemented by 'xpAttrFixed'</span>
-<a name="line-630"></a>
-<a name="line-631"></a><a name="xpAddFixedAttr"></a><span class='definition'>xpAddFixedAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-632"></a><span class='definition'>xpAddFixedAttr</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>pa</span>
-<a name="line-633"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>snd</span>
-<a name="line-634"></a>	     <span class='layout'>,</span> <span class='conid'>(,)</span> <span class='conid'>()</span>
-<a name="line-635"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>
-<a name="line-636"></a>      <span class='varid'>xpPair</span> <span class='layout'>(</span><span class='varid'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='varid'>pa</span>
-<a name="line-637"></a>
-<a name="line-638"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-639"></a>
-<a name="line-640"></a><span class='comment'>-- | The class for overloading 'xpickle', the default pickler</span>
-<a name="line-641"></a>
-<a name="line-642"></a><a name="XmlPickler"></a><span class='keyword'>class</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyword'>where</span>
-<a name="line-643"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>
-<a name="line-644"></a>
-<a name="line-645"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Int</span> <span class='keyword'>where</span>
-<a name="line-646"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>
-<a name="line-647"></a>
-<a name="line-648"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Integer</span> <span class='keyword'>where</span>
-<a name="line-649"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>
-<a name="line-650"></a>
-<a name="line-651"></a><span class='comment'>{-
-<a name="line-652"></a>  no instance of XmlPickler Char
-<a name="line-653"></a>  because then every text would be encoded
-<a name="line-654"></a>  char by char, because of the instance for lists
-<a name="line-655"></a>
-<a name="line-656"></a>instance XmlPickler Char where
-<a name="line-657"></a>    xpickle = xpPrim
-<a name="line-658"></a>-}</span>
-<a name="line-659"></a>
-<a name="line-660"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>()</span> <span class='keyword'>where</span>
-<a name="line-661"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpUnit</span>
-<a name="line-662"></a>
-<a name="line-663"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyword'>where</span>
-<a name="line-664"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPair</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
-<a name="line-665"></a>
-<a name="line-666"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>)</span> <span class='keyword'>where</span>
-<a name="line-667"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpTriple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
-<a name="line-668"></a>
-<a name="line-669"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>d</span><span class='layout'>)</span> <span class='keyword'>where</span>
-<a name="line-670"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xp4Tuple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
-<a name="line-671"></a>
-<a name="line-672"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>d</span><span class='layout'>,</span><span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>where</span>
-<a name="line-673"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xp5Tuple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
-<a name="line-674"></a>
-<a name="line-675"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyword'>where</span>
-<a name="line-676"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpList</span> <span class='varid'>xpickle</span>
-<a name="line-677"></a>
-<a name="line-678"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>
-<a name="line-679"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varid'>xpickle</span>
-<a name="line-680"></a>
-<a name="line-681"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
+<a name="line-6"></a>   License    : MIT
+<a name="line-7"></a>
+<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-9"></a>   Stability  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   Pickler functions for converting between user defined data types
+<a name="line-13"></a>   and XmlTree data. Usefull for persistent storage and retreival
+<a name="line-14"></a>   of arbitray data as XML documents
+<a name="line-15"></a>
+<a name="line-16"></a>   This module is an adaptation of the pickler combinators
+<a name="line-17"></a>   developed by Andrew Kennedy
+<a name="line-18"></a>   ( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )
+<a name="line-19"></a>
+<a name="line-20"></a>   The difference to Kennedys approach is that the target is not
+<a name="line-21"></a>   a list of Chars but a list of XmlTrees. The basic picklers will
+<a name="line-22"></a>   convert data into XML text nodes. New are the picklers for
+<a name="line-23"></a>   creating elements and attributes.
+<a name="line-24"></a>
+<a name="line-25"></a>   One extension was neccessary: The unpickling may fail.
+<a name="line-26"></a>   Therefore the unpickler has a Maybe result type.
+<a name="line-27"></a>   Failure is used to unpickle optional elements
+<a name="line-28"></a>   (Maybe data) and lists of arbitray length
+<a name="line-29"></a>
+<a name="line-30"></a>   There is an example program demonstrating the use
+<a name="line-31"></a>   of the picklers for a none trivial data structure.
+<a name="line-32"></a>   (see \"examples\/arrows\/pickle\" directory)
+<a name="line-33"></a>
+<a name="line-34"></a>-}</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Xml</span>
+<a name="line-39"></a><span class='keyword'>where</span>
+<a name="line-40"></a>
+<a name="line-41"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-42"></a><span class='keyword'>import</span>		 <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
+<a name="line-43"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-46"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>
+<a name="line-49"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-50"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>
+<a name="line-51"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>  <span class='layout'>(</span><span class='varid'>xread</span><span class='layout'>)</span>
+<a name="line-52"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>          <span class='layout'>(</span><span class='varid'>xshowEscapeXml</span><span class='layout'>)</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-55"></a>
+<a name="line-56"></a><a name="St"></a><span class='keyword'>data</span> <span class='conid'>St</span>		<span class='keyglyph'>=</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-57"></a>		     <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-58"></a>		     <span class='layout'>}</span>
+<a name="line-59"></a>
+<a name="line-60"></a><a name="PU"></a><span class='keyword'>data</span> <span class='conid'>PU</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>St</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
+<a name="line-61"></a>		     <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>St</span><span class='layout'>)</span>
+<a name="line-62"></a>		     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-63"></a>		     <span class='layout'>}</span>
+<a name="line-64"></a>
+<a name="line-65"></a><a name="emptySt"></a><span class='definition'>emptySt</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span>
+<a name="line-66"></a><span class='definition'>emptySt</span>		<span class='keyglyph'>=</span>  <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-67"></a>		      <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-68"></a>		      <span class='layout'>}</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="addAtt"></a><span class='definition'>addAtt</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
+<a name="line-71"></a><span class='definition'>addAtt</span> <span class='varid'>x</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>attributes</span> <span class='varid'>s</span><span class='layout'>}</span>
+<a name="line-72"></a>
+<a name="line-73"></a><a name="addCont"></a><span class='definition'>addCont</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
+<a name="line-74"></a><span class='definition'>addCont</span> <span class='varid'>x</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>contents</span> <span class='varid'>s</span><span class='layout'>}</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="dropCont"></a><span class='definition'>dropCont</span>	<span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>
+<a name="line-77"></a><span class='definition'>dropCont</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="getAtt"></a><span class='definition'>getAtt</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>
+<a name="line-80"></a><span class='definition'>getAtt</span> <span class='varid'>qn</span> <span class='varid'>s</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>$</span>
+<a name="line-82"></a>      <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>attributes</span>
+<a name="line-83"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-84"></a>	      <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>qn</span>
+<a name="line-85"></a>	    <span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="getCont"></a><span class='definition'>getCont</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>
+<a name="line-88"></a><span class='definition'>getCont</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>.</span> <span class='varid'>contents</span> <span class='varop'>$</span> <span class='varid'>s</span>
+<a name="line-89"></a>
+<a name="line-90"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-91"></a>
+<a name="line-92"></a><span class='comment'>-- | conversion of an arbitrary value into an XML document tree.</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>-- The pickler, first parameter, controls the conversion process.</span>
+<a name="line-95"></a><span class='comment'>-- Result is a complete document tree including a root node</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="pickleDoc"></a><span class='definition'>pickleDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-98"></a><span class='definition'>pickleDoc</span> <span class='varid'>p</span> <span class='varid'>v</span>
+<a name="line-99"></a>    <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-100"></a>    <span class='keyword'>where</span>
+<a name="line-101"></a>    <span class='varid'>st</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>v</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='comment'>-- | Conversion of an XML document tree into an arbitrary data type</span>
+<a name="line-104"></a><span class='comment'>--</span>
+<a name="line-105"></a><span class='comment'>-- The inverse of 'pickleDoc'.</span>
+<a name="line-106"></a><span class='comment'>-- This law should hold for all picklers: @ unpickle px . pickle px $ v == Just v @.</span>
+<a name="line-107"></a><span class='comment'>-- Not every possible combination of picklers make sense.</span>
+<a name="line-108"></a><span class='comment'>-- For reconverting a value from an XML tree, is becomes neccessary,</span>
+<a name="line-109"></a><span class='comment'>-- to introduce \"enough\" markup for unpickling the value</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="unpickleDoc"></a><span class='definition'>unpickleDoc</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>
+<a name="line-112"></a><span class='definition'>unpickleDoc</span> <span class='varid'>p</span> <span class='varid'>t</span>
+<a name="line-113"></a>    <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span> <span class='varid'>t</span>
+<a name="line-114"></a>	<span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varop'>$</span>  <span class='varid'>t</span>
+<a name="line-115"></a>				   <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>=</span>            <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>
+<a name="line-116"></a>				   <span class='layout'>}</span>
+<a name="line-117"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-118"></a>	<span class='keyglyph'>=</span> <span class='varid'>unpickleDoc</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-119"></a>
+<a name="line-120"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-121"></a>
+<a name="line-122"></a><span class='comment'>-- | The zero pickler</span>
+<a name="line-123"></a><span class='comment'>--</span>
+<a name="line-124"></a><span class='comment'>-- Encodes nothing, fails always during unpickling</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="xpZero"></a><span class='definition'>xpZero</span>			<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-127"></a><span class='definition'>xpZero</span>			<span class='keyglyph'>=</span>  <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='varid'>snd</span>
+<a name="line-128"></a>			      <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-129"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scNull</span>
+<a name="line-130"></a>			      <span class='layout'>}</span>
+<a name="line-131"></a>
+<a name="line-132"></a><span class='comment'>-- unit pickler</span>
+<a name="line-133"></a>
+<a name="line-134"></a><a name="xpUnit"></a><span class='definition'>xpUnit</span>			<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>()</span>
+<a name="line-135"></a><span class='definition'>xpUnit</span>			<span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='conid'>()</span>
+<a name="line-136"></a>
+<a name="line-137"></a><span class='comment'>-- | Lift a value to a pickler</span>
+<a name="line-138"></a><span class='comment'>--</span>
+<a name="line-139"></a><span class='comment'>-- When pickling, nothing is encoded, when unpickling, the given value is inserted.</span>
+<a name="line-140"></a><span class='comment'>-- This pickler always succeeds.</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="xpLift"></a><span class='definition'>xpLift</span>			<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-143"></a><span class='definition'>xpLift</span> <span class='varid'>x</span>		<span class='keyglyph'>=</span>  <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='varid'>snd</span>
+<a name="line-144"></a>			      <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-145"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>
+<a name="line-146"></a>			      <span class='layout'>}</span>
+<a name="line-147"></a>
+<a name="line-148"></a><span class='comment'>-- | Lift a Maybe value to a pickler.</span>
+<a name="line-149"></a><span class='comment'>--</span>
+<a name="line-150"></a><span class='comment'>-- @Nothing@ is mapped to the zero pickler, @Just x@ is pickled with @xpLift x@.</span>
+<a name="line-151"></a>
+<a name="line-152"></a><a name="xpLiftMaybe"></a><span class='definition'>xpLiftMaybe</span>		<span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-153"></a><span class='definition'>xpLiftMaybe</span> <span class='varid'>v</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpLiftMaybe'</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scOption</span> <span class='varid'>scEmpty</span> <span class='layout'>}</span>
+<a name="line-154"></a>    <span class='keyword'>where</span>
+<a name="line-155"></a>    <span class='varid'>xpLiftMaybe'</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>xpZero</span>
+<a name="line-156"></a>    <span class='varid'>xpLiftMaybe'</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='varid'>x</span>
+<a name="line-157"></a>
+<a name="line-158"></a>
+<a name="line-159"></a><span class='comment'>-- | pickle\/unpickle combinator for sequence and choice.</span>
+<a name="line-160"></a><span class='comment'>--</span>
+<a name="line-161"></a><span class='comment'>-- When the first unpickler fails,</span>
+<a name="line-162"></a><span class='comment'>-- the second one is taken, else the third one configured with the result from the first</span>
+<a name="line-163"></a><span class='comment'>-- is taken. This pickler is a generalisation for 'xpSeq' and 'xpChoice' .</span>
+<a name="line-164"></a><span class='comment'>--</span>
+<a name="line-165"></a><span class='comment'>-- The schema must be attached later, e.g. in xpPair or other higher level combinators</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="xpCondSeq"></a><span class='definition'>xpCondSeq</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
+<a name="line-168"></a><span class='definition'>xpCondSeq</span> <span class='varid'>pd</span> <span class='varid'>f</span> <span class='varid'>pa</span> <span class='varid'>k</span>
+<a name="line-169"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-170"></a>	                   <span class='keyword'>let</span>
+<a name="line-171"></a>			   <span class='varid'>a</span>  <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>b</span>
+<a name="line-172"></a>			   <span class='varid'>pb</span> <span class='keyglyph'>=</span> <span class='varid'>k</span> <span class='varid'>a</span>
+<a name="line-173"></a>			   <span class='keyword'>in</span>
+<a name="line-174"></a>			   <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>appPickle</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-175"></a>			 <span class='layout'>)</span>
+<a name="line-176"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-177"></a>			   <span class='keyword'>let</span>
+<a name="line-178"></a>			   <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>s'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varid'>s</span>
+<a name="line-179"></a>			   <span class='keyword'>in</span>
+<a name="line-180"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
+<a name="line-181"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appUnPickle</span> <span class='varid'>pd</span>     <span class='varid'>s</span>
+<a name="line-182"></a>			   <span class='conid'>Just</span> <span class='varid'>a'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appUnPickle</span> <span class='layout'>(</span><span class='varid'>k</span> <span class='varid'>a'</span><span class='layout'>)</span> <span class='varid'>s'</span>
+<a name="line-183"></a>			 <span class='layout'>)</span>
+<a name="line-184"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-185"></a>	 <span class='layout'>}</span>
+<a name="line-186"></a>
+<a name="line-187"></a>
+<a name="line-188"></a><span class='comment'>-- | Combine two picklers sequentially.</span>
+<a name="line-189"></a><span class='comment'>--</span>
+<a name="line-190"></a><span class='comment'>-- If the first fails during</span>
+<a name="line-191"></a><span class='comment'>-- unpickling, the whole unpickler fails</span>
+<a name="line-192"></a>
+<a name="line-193"></a><a name="xpSeq"></a><span class='definition'>xpSeq</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
+<a name="line-194"></a><span class='definition'>xpSeq</span>	<span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>xpZero</span>
+<a name="line-195"></a>
+<a name="line-196"></a>
+<a name="line-197"></a><span class='comment'>-- | combine tow picklers with a choice</span>
+<a name="line-198"></a><span class='comment'>--</span>
+<a name="line-199"></a><span class='comment'>-- Run two picklers in sequence like with xpSeq.</span>
+<a name="line-200"></a><span class='comment'>-- When during unpickling the first one fails,</span>
+<a name="line-201"></a><span class='comment'>-- an alternative pickler (first argument) is applied.</span>
+<a name="line-202"></a><span class='comment'>-- This pickler is only used as combinator for unpickling.</span>
+<a name="line-203"></a> 
+<a name="line-204"></a><a name="xpChoice"></a><span class='definition'>xpChoice</span>		<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
+<a name="line-205"></a><span class='definition'>xpChoice</span> <span class='varid'>pb</span>	<span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>pb</span> <span class='varid'>undefined</span>
+<a name="line-206"></a>
+<a name="line-207"></a>
+<a name="line-208"></a><span class='comment'>-- | map value into another domain and apply pickler there</span>
+<a name="line-209"></a><span class='comment'>--</span>
+<a name="line-210"></a><span class='comment'>-- One of the most often used picklers.</span>
+<a name="line-211"></a>
+<a name="line-212"></a><a name="xpWrap"></a><span class='definition'>xpWrap</span>			<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
+<a name="line-213"></a><span class='definition'>xpWrap</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>j</span><span class='layout'>)</span> <span class='varid'>pa</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpSeq</span> <span class='varid'>j</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='varop'>.</span> <span class='varid'>i</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>theSchema</span> <span class='varid'>pa</span> <span class='layout'>}</span>
+<a name="line-214"></a>
+<a name="line-215"></a><span class='comment'>-- | like 'xpWrap', but if the inverse mapping is undefined, the unpickler fails</span>
+<a name="line-216"></a><span class='comment'>--</span>
+<a name="line-217"></a><span class='comment'>-- Map a value into another domain. If the inverse mapping is</span>
+<a name="line-218"></a><span class='comment'>-- undefined (Nothing), the unpickler fails</span>
+<a name="line-219"></a>
+<a name="line-220"></a><a name="xpWrapMaybe"></a><span class='definition'>xpWrapMaybe</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>
+<a name="line-221"></a><span class='definition'>xpWrapMaybe</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>j</span><span class='layout'>)</span> <span class='varid'>pa</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpSeq</span> <span class='varid'>j</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLiftMaybe</span> <span class='varop'>.</span> <span class='varid'>i</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>theSchema</span> <span class='varid'>pa</span> <span class='layout'>}</span>
+<a name="line-222"></a>
+<a name="line-223"></a><span class='comment'>-- | pickle a pair of values sequentially</span>
+<a name="line-224"></a><span class='comment'>--</span>
+<a name="line-225"></a><span class='comment'>-- Used for pairs or together with wrap for pickling</span>
+<a name="line-226"></a><span class='comment'>-- algebraic data types with two components</span>
+<a name="line-227"></a>
+<a name="line-228"></a><a name="xpPair"></a><span class='definition'>xpPair</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-229"></a><span class='definition'>xpPair</span> <span class='varid'>pa</span> <span class='varid'>pb</span>
+<a name="line-230"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpSeq</span> <span class='varid'>fst</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-231"></a>        <span class='varid'>xpSeq</span> <span class='varid'>snd</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-232"></a>        <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-233"></a>      <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scSeq</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pb</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-234"></a>
+<a name="line-235"></a><span class='comment'>-- | Like 'xpPair' but for triples</span>
+<a name="line-236"></a>
+<a name="line-237"></a><a name="xpTriple"></a><span class='definition'>xpTriple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-238"></a><span class='definition'>xpTriple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span>
+<a name="line-239"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toTriple</span><span class='layout'>,</span> <span class='varid'>fromTriple</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='varid'>pc</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-240"></a>    <span class='keyword'>where</span>
+<a name="line-241"></a>    <span class='varid'>toTriple</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span> <span class='layout'>)</span>
+<a name="line-242"></a>    <span class='varid'>fromTriple</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-243"></a>
+<a name="line-244"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 4-tuples</span>
+<a name="line-245"></a>
+<a name="line-246"></a><a name="xp4Tuple"></a><span class='definition'>xp4Tuple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span>
+<a name="line-247"></a><span class='definition'>xp4Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span>
+<a name="line-248"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toQuad</span><span class='layout'>,</span> <span class='varid'>fromQuad</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='varid'>pd</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-249"></a>    <span class='keyword'>where</span>
+<a name="line-250"></a>    <span class='varid'>toQuad</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span>  <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span>  <span class='layout'>)</span>
+<a name="line-251"></a>    <span class='varid'>fromQuad</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span>   <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span>  <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-252"></a>
+<a name="line-253"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 5-tuples</span>
+<a name="line-254"></a>
+<a name="line-255"></a><a name="xp5Tuple"></a><span class='definition'>xp5Tuple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-256"></a><span class='definition'>xp5Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span> <span class='varid'>pe</span>
+<a name="line-257"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toQuint</span><span class='layout'>,</span> <span class='varid'>fromQuint</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pd</span> <span class='varid'>pe</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-258"></a>    <span class='keyword'>where</span>
+<a name="line-259"></a>    <span class='varid'>toQuint</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span>  <span class='varid'>c</span><span class='layout'>,</span>  <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span>   <span class='layout'>)</span>
+<a name="line-260"></a>    <span class='varid'>fromQuint</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span>   <span class='varid'>c</span><span class='layout'>,</span>   <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span>   <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-261"></a>
+<a name="line-262"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 6-tuples</span>
+<a name="line-263"></a>
+<a name="line-264"></a><a name="xp6Tuple"></a><span class='definition'>xp6Tuple</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>f</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-265"></a><span class='definition'>xp6Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span> <span class='varid'>pe</span> <span class='varid'>pf</span>
+<a name="line-266"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toSix</span><span class='layout'>,</span> <span class='varid'>fromSix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pd</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pe</span> <span class='varid'>pf</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-267"></a>    <span class='keyword'>where</span>
+<a name="line-268"></a>    <span class='varid'>toSix</span>   <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>  <span class='varid'>b</span><span class='layout'>,</span>  <span class='varid'>c</span><span class='layout'>,</span>  <span class='varid'>d</span><span class='layout'>,</span>  <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span>    <span class='layout'>)</span>
+<a name="line-269"></a>    <span class='varid'>fromSix</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span>   <span class='varid'>b</span><span class='layout'>,</span>   <span class='varid'>c</span><span class='layout'>,</span>   <span class='varid'>d</span><span class='layout'>,</span>   <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-270"></a>
+<a name="line-271"></a><span class='comment'>-- | Pickle a string into an XML text node</span>
+<a name="line-272"></a><span class='comment'>--</span>
+<a name="line-273"></a><span class='comment'>-- One of the most often used primitive picklers. Attention:</span>
+<a name="line-274"></a><span class='comment'>-- For pickling empty strings use 'xpText0'. If the text has a more</span>
+<a name="line-275"></a><span class='comment'>-- specific datatype than xsd:string, use 'xpTextDT'</span>
+<a name="line-276"></a>
+<a name="line-277"></a><a name="xpText"></a><span class='definition'>xpText</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>
+<a name="line-278"></a><span class='definition'>xpText</span>	<span class='keyglyph'>=</span> <span class='varid'>xpTextDT</span> <span class='varid'>scString1</span>
+<a name="line-279"></a>
+<a name="line-280"></a><span class='comment'>-- | Pickle a string into an XML text node</span>
+<a name="line-281"></a><span class='comment'>--</span>
+<a name="line-282"></a><span class='comment'>-- Text pickler with a description of the structure of the text</span>
+<a name="line-283"></a><span class='comment'>-- by a schema. A schema for a data type can be defined by 'Text.XML.HXT.Arrow.Pickle.Schema.scDT'.</span>
+<a name="line-284"></a><span class='comment'>-- In 'Text.XML.HXT.Arrow.Pickle.Schema' there are some more functions for creating</span>
+<a name="line-285"></a><span class='comment'>-- simple datatype descriptions.</span>
+<a name="line-286"></a>
+<a name="line-287"></a><a name="xpTextDT"></a><span class='definition'>xpTextDT</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>String</span>
+<a name="line-288"></a><span class='definition'>xpTextDT</span> <span class='varid'>sc</span>
+<a name="line-289"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>st</span>
+<a name="line-290"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleString</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-291"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-292"></a>	 <span class='layout'>}</span>
+<a name="line-293"></a>    <span class='keyword'>where</span>
+<a name="line-294"></a>    <span class='varid'>unpickleString</span> <span class='varid'>st</span>
+<a name="line-295"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-296"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-297"></a>	  <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varid'>t</span>
+<a name="line-298"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-299"></a>
+<a name="line-300"></a><span class='comment'>-- | Pickle a possibly empty string into an XML node.</span>
+<a name="line-301"></a><span class='comment'>--</span>
+<a name="line-302"></a><span class='comment'>-- Must be used in all places, where empty strings are legal values.</span>
+<a name="line-303"></a><span class='comment'>-- If the content of an element can be an empty string, this string disapears</span>
+<a name="line-304"></a><span class='comment'>-- during storing the DOM into a document and reparse the document.</span>
+<a name="line-305"></a><span class='comment'>-- So the empty text node becomes nothing, and the pickler must deliver an empty string,</span>
+<a name="line-306"></a><span class='comment'>-- if there is no text node in the document.</span>
+<a name="line-307"></a>
+<a name="line-308"></a><a name="xpText0"></a><span class='definition'>xpText0</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>
+<a name="line-309"></a><span class='definition'>xpText0</span>	<span class='keyglyph'>=</span> <span class='varid'>xpText0DT</span> <span class='varid'>scString1</span>
+<a name="line-310"></a>
+<a name="line-311"></a><span class='comment'>-- | Pickle a possibly empty string with a datatype description into an XML node.</span>
+<a name="line-312"></a><span class='comment'>--</span>
+<a name="line-313"></a><span class='comment'>-- Like 'xpText0' but with extra Parameter for datatype description as in 'xpTextDT'.</span>
+<a name="line-314"></a>
+<a name="line-315"></a><a name="xpText0DT"></a><span class='definition'>xpText0DT</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>String</span>
+<a name="line-316"></a><span class='definition'>xpText0DT</span> <span class='varid'>sc</span>
+<a name="line-317"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='str'>""</span><span class='layout'>,</span> <span class='varid'>emptyToNothing</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xpOption</span> <span class='varop'>$</span> <span class='varid'>xpTextDT</span> <span class='varid'>sc</span>
+<a name="line-318"></a>    <span class='keyword'>where</span>
+<a name="line-319"></a>    <span class='varid'>emptyToNothing</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-320"></a>    <span class='varid'>emptyToNothing</span> <span class='varid'>x</span>  <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>
+<a name="line-321"></a>
+<a name="line-322"></a><span class='comment'>-- | Pickle an arbitrary value by applyling show during pickling</span>
+<a name="line-323"></a><span class='comment'>-- and read during unpickling.</span>
+<a name="line-324"></a><span class='comment'>--</span>
+<a name="line-325"></a><span class='comment'>-- Real pickling is then done with 'xpText'.</span>
+<a name="line-326"></a><span class='comment'>-- One of the most often used pimitive picklers. Applicable for all</span>
+<a name="line-327"></a><span class='comment'>-- types which are instances of @Read@ and @Show@</span>
+<a name="line-328"></a>
+<a name="line-329"></a><a name="xpPrim"></a><span class='definition'>xpPrim</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Read</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-330"></a><span class='definition'>xpPrim</span>
+<a name="line-331"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrapMaybe</span> <span class='layout'>(</span><span class='varid'>readMaybe</span><span class='layout'>,</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>xpText</span>
+<a name="line-332"></a>    <span class='keyword'>where</span>
+<a name="line-333"></a>    <span class='varid'>readMaybe</span>	<span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>
+<a name="line-334"></a>    <span class='varid'>readMaybe</span> <span class='varid'>str</span>
+<a name="line-335"></a>	<span class='keyglyph'>=</span> <span class='varid'>val</span> <span class='layout'>(</span><span class='varid'>reads</span> <span class='varid'>str</span><span class='layout'>)</span>
+<a name="line-336"></a>	<span class='keyword'>where</span>
+<a name="line-337"></a>	<span class='varid'>val</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>
+<a name="line-338"></a>	<span class='varid'>val</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-339"></a>
+<a name="line-340"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-341"></a>
+<a name="line-342"></a><span class='comment'>-- | Pickle an XmlTree by just adding it</span>
+<a name="line-343"></a><span class='comment'>--</span>
+<a name="line-344"></a><span class='comment'>-- Usefull for components of type XmlTree in other data structures</span>
+<a name="line-345"></a>
+<a name="line-346"></a><a name="xpTree"></a><span class='definition'>xpTree</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>XmlTree</span>
+<a name="line-347"></a><span class='definition'>xpTree</span>	<span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addCont</span> <span class='varid'>s</span> <span class='varid'>st</span>
+<a name="line-348"></a>	     <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleTree</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-349"></a>	     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='conid'>Any</span>
+<a name="line-350"></a>	     <span class='layout'>}</span>
+<a name="line-351"></a>    <span class='keyword'>where</span>
+<a name="line-352"></a>    <span class='varid'>unpickleTree</span> <span class='varid'>st</span>
+<a name="line-353"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-354"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-355"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-356"></a>
+<a name="line-357"></a><span class='comment'>-- | Pickle a whole list of XmlTrees by just adding the list, unpickle is done by taking all element contens.</span>
+<a name="line-358"></a><span class='comment'>--</span>
+<a name="line-359"></a><span class='comment'>-- This pickler should always combined with 'xpElem' for taking the whole contents of an element.</span>
+<a name="line-360"></a>
+<a name="line-361"></a><a name="xpTrees"></a><span class='definition'>xpTrees</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-362"></a><span class='definition'>xpTrees</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>xpTree</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='conid'>Any</span> <span class='layout'>}</span>
+<a name="line-363"></a>
+<a name="line-364"></a><span class='comment'>-- | Pickle a string representing XML contents by inserting the tree representation into the XML document.</span>
+<a name="line-365"></a><span class='comment'>--</span>
+<a name="line-366"></a><span class='comment'>-- Unpickling is done by converting the contents with</span>
+<a name="line-367"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.xshowEscapeXml' into a string,</span>
+<a name="line-368"></a><span class='comment'>-- this function will escape all XML special chars, such that pickling the value back becomes save.</span>
+<a name="line-369"></a><span class='comment'>-- Pickling is done with 'Text.XML.HXT.Arrow.ReadDocument.xread'</span>
+<a name="line-370"></a>
+<a name="line-371"></a><a name="xpXmlText"></a><span class='definition'>xpXmlText</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>
+<a name="line-372"></a><span class='definition'>xpXmlText</span>
+<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>showXML</span><span class='layout'>,</span> <span class='varid'>readXML</span> <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xpTrees</span>
+<a name="line-374"></a>    <span class='keyword'>where</span>
+<a name="line-375"></a>    <span class='varid'>showXML</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>xshowEscapeXml</span> <span class='varid'>unlistA</span> <span class='layout'>)</span>
+<a name="line-376"></a>    <span class='varid'>readXML</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>xread</span>
+<a name="line-377"></a>
+<a name="line-378"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-379"></a>
+<a name="line-380"></a><span class='comment'>-- | Encoding of optional data by ignoring the Nothing case during pickling</span>
+<a name="line-381"></a><span class='comment'>-- and relying on failure during unpickling to recompute the Nothing case</span>
+<a name="line-382"></a><span class='comment'>--</span>
+<a name="line-383"></a><span class='comment'>-- The default pickler for Maybe types</span>
+<a name="line-384"></a>
+<a name="line-385"></a><a name="xpOption"></a><span class='definition'>xpOption</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-386"></a><span class='definition'>xpOption</span> <span class='varid'>pa</span>
+<a name="line-387"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-388"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
+<a name="line-389"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>
+<a name="line-390"></a>			   <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-391"></a>			 <span class='layout'>)</span>
+<a name="line-392"></a>
+<a name="line-393"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>
+<a name="line-394"></a>	                 <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='varop'>.</span> <span class='conid'>Just</span><span class='layout'>)</span>
+<a name="line-395"></a>
+<a name="line-396"></a>         <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scOption</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
+<a name="line-397"></a>	 <span class='layout'>}</span>
+<a name="line-398"></a>
+<a name="line-399"></a><span class='comment'>-- | Optional conversion with default value</span>
+<a name="line-400"></a><span class='comment'>--</span>
+<a name="line-401"></a><span class='comment'>-- The default value is not encoded in the XML document,</span>
+<a name="line-402"></a><span class='comment'>-- during unpickling the default value is inserted if the pickler fails</span>
+<a name="line-403"></a>
+<a name="line-404"></a><a name="xpDefault"></a><span class='definition'>xpDefault</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Eq</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-405"></a><span class='definition'>xpDefault</span> <span class='varid'>df</span>
+<a name="line-406"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>df</span>
+<a name="line-407"></a>	     <span class='layout'>,</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>df</span> <span class='keyword'>then</span> <span class='conid'>Nothing</span> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varid'>x</span>
+<a name="line-408"></a>	     <span class='layout'>)</span> <span class='varop'>.</span>
+<a name="line-409"></a>      <span class='varid'>xpOption</span>
+<a name="line-410"></a>
+<a name="line-411"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-412"></a>
+<a name="line-413"></a><span class='comment'>-- | Encoding of list values by pickling all list elements sequentially.</span>
+<a name="line-414"></a><span class='comment'>--</span>
+<a name="line-415"></a><span class='comment'>-- Unpickler relies on failure for detecting the end of the list.</span>
+<a name="line-416"></a><span class='comment'>-- The standard pickler for lists. Can also be used in combination with 'xpWrap'</span>
+<a name="line-417"></a><span class='comment'>-- for constructing set and map picklers</span>
+<a name="line-418"></a>
+<a name="line-419"></a><a name="xpList"></a><span class='definition'>xpList</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-420"></a><span class='definition'>xpList</span> <span class='varid'>pa</span>
+<a name="line-421"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-422"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
+<a name="line-423"></a>			   <span class='conid'>[]</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>
+<a name="line-424"></a>			   <span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appPickle</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-425"></a>			 <span class='layout'>)</span>
+<a name="line-426"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>
+<a name="line-427"></a>                         <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>pa</span>
+<a name="line-428"></a>	                   <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xpSeq</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>xs</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-429"></a>
+<a name="line-430"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scList</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
+<a name="line-431"></a>	 <span class='layout'>}</span>
+<a name="line-432"></a>      <span class='keyword'>where</span>
+<a name="line-433"></a>      <span class='varid'>pc</span> <span class='keyglyph'>=</span> <span class='varid'>xpSeq</span> <span class='varid'>head</span>  <span class='varid'>pa</span>       <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-434"></a>	   <span class='varid'>xpSeq</span> <span class='varid'>tail</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>xs</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-435"></a>	   <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-436"></a>
+<a name="line-437"></a><span class='comment'>-- | Encoding of a none empty list of values</span>
+<a name="line-438"></a><span class='comment'>--</span>
+<a name="line-439"></a><span class='comment'>-- Attention: when calling this pickler with an empty list,</span>
+<a name="line-440"></a><span class='comment'>-- an internal error \"head of empty list is raised\".</span>
+<a name="line-441"></a>
+<a name="line-442"></a><a name="xpList1"></a><span class='definition'>xpList1</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-443"></a><span class='definition'>xpList1</span> <span class='varid'>pa</span>
+<a name="line-444"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span>
+<a name="line-445"></a>	       <span class='layout'>,</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-446"></a>	       <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-447"></a>	<span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span>
+<a name="line-448"></a>      <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scList1</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-449"></a>
+<a name="line-450"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-451"></a>
+<a name="line-452"></a><span class='comment'>-- | Standard pickler for maps</span>
+<a name="line-453"></a><span class='comment'>--</span>
+<a name="line-454"></a><span class='comment'>-- This pickler converts a map into a list of pairs.</span>
+<a name="line-455"></a><span class='comment'>-- All key value pairs are mapped to an element with name (1.arg),</span>
+<a name="line-456"></a><span class='comment'>-- the key is encoded as an attribute named by the 2. argument,</span>
+<a name="line-457"></a><span class='comment'>-- the 3. arg is the pickler for the keys, the last one for the values</span>
+<a name="line-458"></a>
+<a name="line-459"></a><a name="xpMap"></a><span class='definition'>xpMap</span>	<span class='keyglyph'>::</span> <span class='conid'>Ord</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='varid'>k</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-460"></a><span class='definition'>xpMap</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>xpk</span> <span class='varid'>xpv</span>
+<a name="line-461"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span>
+<a name="line-462"></a>	     <span class='layout'>,</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>toList</span>
+<a name="line-463"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-464"></a>      <span class='varid'>xpList</span> <span class='varop'>$</span>
+<a name="line-465"></a>      <span class='varid'>xpElem</span> <span class='varid'>en</span> <span class='varop'>$</span>
+<a name="line-466"></a>      <span class='varid'>xpPair</span> <span class='layout'>(</span> <span class='varid'>xpAttr</span> <span class='varid'>an</span> <span class='varop'>$</span> <span class='varid'>xpk</span> <span class='layout'>)</span> <span class='varid'>xpv</span>
+<a name="line-467"></a>
+<a name="line-468"></a>
+<a name="line-469"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-470"></a>
+<a name="line-471"></a><span class='comment'>-- | Pickler for sum data types.</span>
+<a name="line-472"></a><span class='comment'>--</span>
+<a name="line-473"></a><span class='comment'>-- Every constructor is mapped to an index into the list of picklers.</span>
+<a name="line-474"></a><span class='comment'>-- The index is used only during pickling, not during unpickling, there the 1. match is taken</span>
+<a name="line-475"></a>
+<a name="line-476"></a><a name="xpAlt"></a><span class='definition'>xpAlt</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>PU</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-477"></a><span class='definition'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps</span>
+<a name="line-478"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-479"></a>			   <span class='keyword'>let</span>
+<a name="line-480"></a>			   <span class='varid'>pa</span> <span class='keyglyph'>=</span> <span class='varid'>ps</span> <span class='varop'>!!</span> <span class='layout'>(</span><span class='varid'>tag</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-481"></a>			   <span class='keyword'>in</span>
+<a name="line-482"></a>			   <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-483"></a>			 <span class='layout'>)</span>
+<a name="line-484"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>
+<a name="line-485"></a>	                 <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>ps</span> <span class='keyword'>of</span>
+<a name="line-486"></a>			   <span class='conid'>[]</span>     <span class='keyglyph'>-&gt;</span> <span class='varid'>xpZero</span>
+<a name="line-487"></a>			   <span class='varid'>pa</span><span class='conop'>:</span><span class='varid'>ps1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps1</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='varid'>xpLift</span>
+<a name="line-488"></a>			 <span class='layout'>)</span>
+<a name="line-489"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scAlts</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>theSchema</span> <span class='varid'>ps</span><span class='layout'>)</span>
+<a name="line-490"></a>	 <span class='layout'>}</span>
+<a name="line-491"></a>
+<a name="line-492"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-493"></a>
+<a name="line-494"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element</span>
+<a name="line-495"></a><span class='comment'>--</span>
+<a name="line-496"></a><span class='comment'>-- Extra parameter is the element name given as a QName. THE pickler for constructing</span>
+<a name="line-497"></a><span class='comment'>-- nested structures</span>
+<a name="line-498"></a><span class='comment'>--</span>
+<a name="line-499"></a><span class='comment'>-- Example:</span>
+<a name="line-500"></a><span class='comment'>--</span>
+<a name="line-501"></a><span class='comment'>-- &gt; xpElemQN (mkName "number") $ xpickle</span>
+<a name="line-502"></a><span class='comment'>--</span>
+<a name="line-503"></a><span class='comment'>-- will map an (42::Int) onto</span>
+<a name="line-504"></a><span class='comment'>--</span>
+<a name="line-505"></a><span class='comment'>-- &gt; &lt;number&gt;42&lt;/number&gt;</span>
+<a name="line-506"></a>
+<a name="line-507"></a><a name="xpElemQN"></a><span class='definition'>xpElemQN</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-508"></a><span class='definition'>xpElemQN</span> <span class='varid'>qn</span> <span class='varid'>pa</span>
+<a name="line-509"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-510"></a>			   <span class='keyword'>let</span>
+<a name="line-511"></a>	                   <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
+<a name="line-512"></a>			   <span class='keyword'>in</span>
+<a name="line-513"></a>			   <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>
+<a name="line-514"></a>			 <span class='layout'>)</span>
+<a name="line-515"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleElement</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-516"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scElem</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
+<a name="line-517"></a>	 <span class='layout'>}</span>
+<a name="line-518"></a>      <span class='keyword'>where</span>
+<a name="line-519"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>
+<a name="line-520"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-521"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-522"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span> <span class='varid'>t</span>
+<a name="line-523"></a>	    <span class='keyword'>if</span> <span class='varid'>n</span> <span class='varop'>/=</span> <span class='varid'>qn</span>
+<a name="line-524"></a>	       <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='layout'>(</span><span class='str'>"element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" does not match"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-525"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-526"></a>		    <span class='keyword'>let</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>
+<a name="line-527"></a>		    <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>
+<a name="line-528"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span><span class='layout'>}</span>
+<a name="line-529"></a>		    <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-530"></a>
+<a name="line-531"></a><span class='comment'>-- | convenient Pickler for xpElemQN</span>
+<a name="line-532"></a><span class='comment'>--</span>
+<a name="line-533"></a><span class='comment'>-- &gt; xpElem n = xpElemQN (mkName n)</span>
+<a name="line-534"></a>
+<a name="line-535"></a><a name="xpElem"></a><span class='definition'>xpElem</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-536"></a><span class='definition'>xpElem</span>		<span class='keyglyph'>=</span> <span class='varid'>xpElemQN</span> <span class='varop'>.</span> <span class='varid'>mkName</span>
+<a name="line-537"></a>
+<a name="line-538"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-539"></a>
+<a name="line-540"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element with an attribute with given value</span>
+<a name="line-541"></a><span class='comment'>--</span>
+<a name="line-542"></a><span class='comment'>-- To make XML structures flexible but limit the number of different elements, it's sometimes</span>
+<a name="line-543"></a><span class='comment'>-- useful to use a kind of generic element with a key value structure</span>
+<a name="line-544"></a><span class='comment'>--</span>
+<a name="line-545"></a><span class='comment'>-- Example:</span>
+<a name="line-546"></a><span class='comment'>--</span>
+<a name="line-547"></a><span class='comment'>-- &gt; &lt;attr name="key1"&gt;value1&lt;/attr&gt;</span>
+<a name="line-548"></a><span class='comment'>-- &gt; &lt;attr name="key2"&gt;value2&lt;/attr&gt;</span>
+<a name="line-549"></a><span class='comment'>-- &gt; &lt;attr name="key3"&gt;value3&lt;/attr&gt;</span>
+<a name="line-550"></a><span class='comment'>--</span>
+<a name="line-551"></a><span class='comment'>-- the Haskell datatype may look like this</span>
+<a name="line-552"></a><span class='comment'>--</span>
+<a name="line-553"></a><span class='comment'>-- &gt; type T = T { key1 :: Int ; key2 :: String ; key3 :: Double }</span>
+<a name="line-554"></a><span class='comment'>--</span>
+<a name="line-555"></a><span class='comment'>-- Then the picker for that type looks like this</span>
+<a name="line-556"></a><span class='comment'>--</span>
+<a name="line-557"></a><span class='comment'>-- &gt; xpT :: PU T</span>
+<a name="line-558"></a><span class='comment'>-- &gt; xpT = xpWrap ( uncurry3 T, \ t -&gt; (key1 t, key2 t, key3 t) ) $</span>
+<a name="line-559"></a><span class='comment'>-- &gt;       xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)</span>
+<a name="line-560"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)</span>
+<a name="line-561"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key3" $ xpickle)</span>
+<a name="line-562"></a>
+<a name="line-563"></a><a name="xpElemWithAttrValue"></a><span class='definition'>xpElemWithAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-564"></a><span class='definition'>xpElemWithAttrValue</span> <span class='varid'>name</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='varid'>pa</span>
+<a name="line-565"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-566"></a>			   <span class='keyword'>let</span>
+<a name="line-567"></a>	                   <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa'</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
+<a name="line-568"></a>			   <span class='keyword'>in</span>
+<a name="line-569"></a>			   <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>
+<a name="line-570"></a>			 <span class='layout'>)</span>
+<a name="line-571"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleElement</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-572"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scElem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa'</span><span class='layout'>)</span>
+<a name="line-573"></a>	 <span class='layout'>}</span>
+<a name="line-574"></a>      <span class='keyword'>where</span>
+<a name="line-575"></a>      <span class='varid'>pa'</span> <span class='keyglyph'>=</span> <span class='varid'>xpAddFixedAttr</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='varop'>$</span> <span class='varid'>pa</span>
+<a name="line-576"></a>      <span class='varid'>noMatch</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-577"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-578"></a>			       <span class='varid'>hasName</span> <span class='varid'>name</span>
+<a name="line-579"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-580"></a>			       <span class='varid'>hasAttrValue</span> <span class='varid'>an</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>av</span><span class='layout'>)</span>
+<a name="line-581"></a>			     <span class='layout'>)</span>
+<a name="line-582"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>
+<a name="line-583"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-584"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-585"></a>	    <span class='keyword'>if</span> <span class='varid'>noMatch</span> <span class='varid'>t</span>
+<a name="line-586"></a>	       <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='str'>"element name or attr value does not match"</span>
+<a name="line-587"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-588"></a>		    <span class='keyword'>let</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>
+<a name="line-589"></a>		    <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>
+<a name="line-590"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span><span class='layout'>}</span>
+<a name="line-591"></a>		    <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-592"></a>
+<a name="line-593"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-594"></a>
+<a name="line-595"></a><span class='comment'>-- | Pickler for storing\/retreiving data into\/from an attribute value</span>
+<a name="line-596"></a><span class='comment'>--</span>
+<a name="line-597"></a><span class='comment'>-- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler</span>
+<a name="line-598"></a>
+<a name="line-599"></a><a name="xpAttrQN"></a><span class='definition'>xpAttrQN</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-600"></a><span class='definition'>xpAttrQN</span> <span class='varid'>qn</span> <span class='varid'>pa</span>
+<a name="line-601"></a>    <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-602"></a>			   <span class='keyword'>let</span>
+<a name="line-603"></a>			   <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>
+<a name="line-604"></a>			   <span class='keyword'>in</span>
+<a name="line-605"></a>			   <span class='varid'>addAtt</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>
+<a name="line-606"></a>			 <span class='layout'>)</span>
+<a name="line-607"></a>	 <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleAttr</span> <span class='varid'>st</span><span class='layout'>)</span>
+<a name="line-608"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scAttr</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>
+<a name="line-609"></a>	 <span class='layout'>}</span>
+<a name="line-610"></a>      <span class='keyword'>where</span>
+<a name="line-611"></a>      <span class='varid'>unpickleAttr</span> <span class='varid'>st</span>
+<a name="line-612"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-613"></a>	    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getAtt</span> <span class='varid'>qn</span> <span class='varid'>st</span>
+<a name="line-614"></a>	    <span class='keyword'>let</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>a</span>
+<a name="line-615"></a>	    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>av</span><span class='layout'>}</span>
+<a name="line-616"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>	<span class='comment'>-- attribute is not removed from attribute list,</span>
+<a name="line-617"></a>					<span class='comment'>-- attributes are selected by name</span>
+<a name="line-618"></a>
+<a name="line-619"></a><span class='comment'>-- | convenient Pickler for xpAttrQN</span>
+<a name="line-620"></a><span class='comment'>--</span>
+<a name="line-621"></a><span class='comment'>-- &gt; xpAttr n = xpAttrQN (mkName n)</span>
+<a name="line-622"></a>
+<a name="line-623"></a><a name="xpAttr"></a><span class='definition'>xpAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-624"></a><span class='definition'>xpAttr</span>		<span class='keyglyph'>=</span> <span class='varid'>xpAttrQN</span> <span class='varop'>.</span> <span class='varid'>mkName</span>
+<a name="line-625"></a>
+<a name="line-626"></a><span class='comment'>-- | Add an optional attribute for an optional value (Maybe a).</span>
+<a name="line-627"></a>
+<a name="line-628"></a><a name="xpAttrImplied"></a><span class='definition'>xpAttrImplied</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-629"></a><span class='definition'>xpAttrImplied</span> <span class='varid'>name</span> <span class='varid'>pa</span>
+<a name="line-630"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varop'>$</span> <span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>pa</span>
+<a name="line-631"></a>
+<a name="line-632"></a><a name="xpAttrFixed"></a><span class='definition'>xpAttrFixed</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>()</span>
+<a name="line-633"></a><span class='definition'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span>
+<a name="line-634"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpWrapMaybe</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>val</span> <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='conid'>()</span> <span class='keyword'>else</span> <span class='conid'>Nothing</span>
+<a name="line-635"></a>		    <span class='layout'>,</span> <span class='varid'>const</span> <span class='varid'>val</span>
+<a name="line-636"></a>		    <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-637"></a>	<span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>xpText</span>
+<a name="line-638"></a>      <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scAttr</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>scFixed</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-639"></a>
+<a name="line-640"></a><span class='comment'>-- | Add an attribute with a fixed value.</span>
+<a name="line-641"></a><span class='comment'>--</span>
+<a name="line-642"></a><span class='comment'>-- Useful e.g. to declare namespaces. Is implemented by 'xpAttrFixed'</span>
+<a name="line-643"></a>
+<a name="line-644"></a><a name="xpAddFixedAttr"></a><span class='definition'>xpAddFixedAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-645"></a><span class='definition'>xpAddFixedAttr</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>pa</span>
+<a name="line-646"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>snd</span>
+<a name="line-647"></a>	     <span class='layout'>,</span> <span class='conid'>(,)</span> <span class='conid'>()</span>
+<a name="line-648"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-649"></a>      <span class='varid'>xpPair</span> <span class='layout'>(</span><span class='varid'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='varid'>pa</span>
+<a name="line-650"></a>
+<a name="line-651"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-652"></a>
+<a name="line-653"></a><span class='comment'>-- | The class for overloading 'xpickle', the default pickler</span>
+<a name="line-654"></a>
+<a name="line-655"></a><a name="XmlPickler"></a><span class='keyword'>class</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-656"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-657"></a>
+<a name="line-658"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Int</span> <span class='keyword'>where</span>
+<a name="line-659"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>
+<a name="line-660"></a>
+<a name="line-661"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Integer</span> <span class='keyword'>where</span>
+<a name="line-662"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>
+<a name="line-663"></a>
+<a name="line-664"></a><span class='comment'>{-
+<a name="line-665"></a>  no instance of XmlPickler Char
+<a name="line-666"></a>  because then every text would be encoded
+<a name="line-667"></a>  char by char, because of the instance for lists
+<a name="line-668"></a>
+<a name="line-669"></a>instance XmlPickler Char where
+<a name="line-670"></a>    xpickle = xpPrim
+<a name="line-671"></a>-}</span>
+<a name="line-672"></a>
+<a name="line-673"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>()</span> <span class='keyword'>where</span>
+<a name="line-674"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpUnit</span>
+<a name="line-675"></a>
+<a name="line-676"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-677"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPair</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
+<a name="line-678"></a>
+<a name="line-679"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-680"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpTriple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
+<a name="line-681"></a>
+<a name="line-682"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>d</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-683"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xp4Tuple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
+<a name="line-684"></a>
+<a name="line-685"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>d</span><span class='layout'>,</span><span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-686"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xp5Tuple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>
+<a name="line-687"></a>
+<a name="line-688"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyword'>where</span>
+<a name="line-689"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpList</span> <span class='varid'>xpickle</span>
+<a name="line-690"></a>
+<a name="line-691"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-692"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varid'>xpickle</span>
+<a name="line-693"></a>
+<a name="line-694"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html b/doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html
@@ -18,9 +18,9 @@
 <a name="line-10"></a>   Portability: portable
 <a name="line-11"></a>   Version    : $Id: ProcessDocument.hs,v 1.3 2006/08/30 16:20:52 hxml Exp $
 <a name="line-12"></a>
-<a name="line-13"></a>Compound arrows for reading, parsing, validating and writing XML documents
+<a name="line-13"></a>   Compound arrows for reading, parsing, validating and writing XML documents
 <a name="line-14"></a>
-<a name="line-15"></a>All arrows use IO and a global state for options, errorhandling, ...
+<a name="line-15"></a>   All arrows use IO and a global state for options, errorhandling, ...
 <a name="line-16"></a>-}</span>
 <a name="line-17"></a>
 <a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>
@@ -139,7 +139,7 @@
 <a name="line-131"></a>
 <a name="line-132"></a><a name="parseHtmlDocument"></a><span class='definition'>parseHtmlDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
 <a name="line-133"></a><span class='definition'>parseHtmlDocument</span> <span class='varid'>withTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>warnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWhitespace</span> <span class='varid'>asHtml</span>
-<a name="line-134"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>traceString</span> <span class='num'>1</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"parseHtmlDoc: parse HTML document "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-134"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>traceValue</span> <span class='num'>1</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"parseHtmlDoc: parse HTML document "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='layout'>)</span>
 <a name="line-135"></a>	<span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-136"></a>	<span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>		<span class='comment'>-- get source name</span>
 <a name="line-137"></a>			    <span class='varop'>&amp;&amp;&amp;</span>
@@ -159,7 +159,7 @@
 <a name="line-151"></a>	<span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-152"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
 <a name="line-153"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-154"></a>		  <span class='varid'>traceString</span> <span class='num'>1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>src</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"parse HTML document "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" finished"</span><span class='layout'>)</span>
+<a name="line-154"></a>		  <span class='varid'>traceValue</span> <span class='num'>1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>src</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"parse HTML document "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" finished"</span><span class='layout'>)</span>
 <a name="line-155"></a>		<span class='layout'>)</span>
 <a name="line-156"></a>      <span class='layout'>)</span>
 <a name="line-157"></a>      <span class='varop'>`when`</span> <span class='varid'>documentStatusOk</span>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html b/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html
@@ -117,264 +117,270 @@
 <a name="line-109"></a>
 <a name="line-110"></a>- 'a_use_curl' : obsolete and ignored, HTTP acccess is always done with curl bindings for libcurl
 <a name="line-111"></a>
-<a name="line-112"></a>- 'a_options_curl' : deprecated but for compatibility reasons still supported.
-<a name="line-113"></a>                     More options passed to the curl binding.
-<a name="line-114"></a>                     Instead of using this option to set a whole bunch of options at once for curl
-<a name="line-115"></a>                     it is recomended to use the @curl-.*@ options syntax described below.
-<a name="line-116"></a>
-<a name="line-117"></a>- 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', 'iso8859_2', ... , 'iso8859_16', ...).
-<a name="line-118"></a>                 Only XML and HTML documents are decoded, documents with none XML\/HTML mime types are not decoded. The whole content is returned in a single text node
-<a name="line-119"></a>
-<a name="line-120"></a>- 'a_mime_types' : set the mime type table for file input with given file. The format of this config file must be in the syntax of a debian linux \"mime.types\" config file
-<a name="line-121"></a>
-<a name="line-122"></a>- curl options : the HTTP interface with libcurl can be configured with a lot of options. To support these options in an easy way, there is a naming convetion:
-<a name="line-123"></a>                 Every option, which has the prefix @curl@ and the rest of the name forms an option as described in the curl man page, is passed to the curl binding lib.
-<a name="line-124"></a>                 See 'Text.XML.HXT.IO.GetHTTPLibCurl.getCont' for examples. Currently most of the options concerning HTTP requests are implemented.
+<a name="line-112"></a>- 'a_strict_input' : file input is done strictly using the 'Data.ByteString' input functions. This ensures correct closing of files, especially when working with
+<a name="line-113"></a>                     the tagsoup parser and not processing the whole input data. Default is off. The @ByteString@ input usually is not faster than the buildin @hGetContents@
+<a name="line-114"></a>		     for strings.
+<a name="line-115"></a>
+<a name="line-116"></a>- 'a_options_curl' : deprecated but for compatibility reasons still supported.
+<a name="line-117"></a>                     More options passed to the curl binding.
+<a name="line-118"></a>                     Instead of using this option to set a whole bunch of options at once for curl
+<a name="line-119"></a>                     it is recomended to use the @curl-.*@ options syntax described below.
+<a name="line-120"></a>
+<a name="line-121"></a>- 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', 'iso8859_2', ... , 'iso8859_16', ...).
+<a name="line-122"></a>                 Only XML and HTML documents are decoded, documents with none XML\/HTML mime types are not decoded. The whole content is returned in a single text node
+<a name="line-123"></a>
+<a name="line-124"></a>- 'a_mime_types' : set the mime type table for file input with given file. The format of this config file must be in the syntax of a debian linux \"mime.types\" config file
 <a name="line-125"></a>
-<a name="line-126"></a>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various
-<a name="line-127"></a>options in e.g. the input\/output modules
-<a name="line-128"></a>
-<a name="line-129"></a>If the document name is the empty string or an uri of the form \"stdin:\", the document is read from standard input.
-<a name="line-130"></a>
-<a name="line-131"></a>examples:
+<a name="line-126"></a>- curl options : the HTTP interface with libcurl can be configured with a lot of options. To support these options in an easy way, there is a naming convetion:
+<a name="line-127"></a>                 Every option, which has the prefix @curl@ and the rest of the name forms an option as described in the curl man page, is passed to the curl binding lib.
+<a name="line-128"></a>                 See 'Text.XML.HXT.IO.GetHTTPLibCurl.getCont' for examples. Currently most of the options concerning HTTP requests are implemented.
+<a name="line-129"></a>
+<a name="line-130"></a>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various
+<a name="line-131"></a>options in e.g. the input\/output modules
 <a name="line-132"></a>
-<a name="line-133"></a>&gt; readDocument [ ] "test.xml"
+<a name="line-133"></a>If the document name is the empty string or an uri of the form \"stdin:\", the document is read from standard input.
 <a name="line-134"></a>
-<a name="line-135"></a>reads and validates a document \"test.xml\", no namespace propagation, only canonicalization is performed 
+<a name="line-135"></a>examples:
 <a name="line-136"></a>
-<a name="line-137"></a>&gt; readDocument [ (a_validate, "0")
-<a name="line-138"></a>&gt;              , (a_encoding, isoLatin1)
-<a name="line-139"></a>&gt;              , (a_parse_by_mimetype, "1")
-<a name="line-140"></a>&gt;              ] "<a href="http://localhost/test.php">http://localhost/test.php</a>"
-<a name="line-141"></a>
-<a name="line-142"></a>reads document \"test.php\", parses it as HTML or XML depending on the mimetype given from the server, but without validation, default encoding 'isoLatin1'.
-<a name="line-143"></a>
-<a name="line-144"></a>
-<a name="line-145"></a>&gt; readDocument [ (a_parse_html, "1")
-<a name="line-146"></a>&gt;              , (a_encoding, isoLatin1)
-<a name="line-147"></a>&gt;              ] ""
+<a name="line-137"></a>&gt; readDocument [ ] "test.xml"
+<a name="line-138"></a>
+<a name="line-139"></a>reads and validates a document \"test.xml\", no namespace propagation, only canonicalization is performed 
+<a name="line-140"></a>
+<a name="line-141"></a>&gt; readDocument [ (a_validate, "0")
+<a name="line-142"></a>&gt;              , (a_encoding, isoLatin1)
+<a name="line-143"></a>&gt;              , (a_parse_by_mimetype, "1")
+<a name="line-144"></a>&gt;              ] "<a href="http://localhost/test.php">http://localhost/test.php</a>"
+<a name="line-145"></a>
+<a name="line-146"></a>reads document \"test.php\", parses it as HTML or XML depending on the mimetype given from the server, but without validation, default encoding 'isoLatin1'.
+<a name="line-147"></a>
 <a name="line-148"></a>
-<a name="line-149"></a>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',
-<a name="line-150"></a>parsing is done with tagsoup parser
-<a name="line-151"></a>
-<a name="line-152"></a>&gt; readDocument [ (a_encoding, isoLatin1)
-<a name="line-153"></a>&gt;              , (a_mime_type,    "/etc/mime.types")
-<a name="line-154"></a>&gt;              , (a_tagsoup,    "1")
-<a name="line-155"></a>&gt;              ] "test.svg"
-<a name="line-156"></a>
-<a name="line-157"></a>reads an SVG document from standard input, sets the mime type by looking in the system mimetype config file, default encoding is 'isoLatin1',
-<a name="line-158"></a>parsing is done with the lightweight tagsoup parser, which implies no validation.
-<a name="line-159"></a>
-<a name="line-160"></a>&gt; readDocument [ (a_parse_html,     "1")
-<a name="line-161"></a>&gt;              , (a_proxy,          "www-cache:3128")
-<a name="line-162"></a>&gt;              , (a_curl,           "1")
-<a name="line-163"></a>&gt;              , (a_issue_warnings, "0")
-<a name="line-164"></a>&gt;              ] "<a href="http://www.haskell.org/">http://www.haskell.org/</a>"
-<a name="line-165"></a>
-<a name="line-166"></a>reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy \"www-cache\" at port 3128
-<a name="line-167"></a>
-<a name="line-168"></a>&gt; readDocument [ (a_validate,          "1")
-<a name="line-169"></a>&gt;              , (a_check_namespace,   "1")
-<a name="line-170"></a>&gt;              , (a_remove_whitespace, "1")
-<a name="line-171"></a>&gt;              , (a_trace,             "2")
-<a name="line-172"></a>&gt;              ] "<a href="http://www.w3c.org/">http://www.w3c.org/</a>"
-<a name="line-173"></a>
-<a name="line-174"></a>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2
-<a name="line-175"></a>
-<a name="line-176"></a>for minimal complete examples see 'Text.XML.HXT.Arrow.WriteDocument.writeDocument' and 'runX', the main starting point for running an XML arrow.
-<a name="line-177"></a>-}</span>
+<a name="line-149"></a>&gt; readDocument [ (a_parse_html, "1")
+<a name="line-150"></a>&gt;              , (a_encoding, isoLatin1)
+<a name="line-151"></a>&gt;              ] ""
+<a name="line-152"></a>
+<a name="line-153"></a>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',
+<a name="line-154"></a>parsing is done with tagsoup parser, but input is read strictly
+<a name="line-155"></a>
+<a name="line-156"></a>&gt; readDocument [ (a_encoding, isoLatin1)
+<a name="line-157"></a>&gt;              , (a_mime_type,    "/etc/mime.types")
+<a name="line-158"></a>&gt;              , (a_tagsoup,      "1")
+<a name="line-159"></a>&gt;              , (a_strict_input, "1")
+<a name="line-160"></a>&gt;              ] "test.svg"
+<a name="line-161"></a>
+<a name="line-162"></a>reads an SVG document from standard input, sets the mime type by looking in the system mimetype config file, default encoding is 'isoLatin1',
+<a name="line-163"></a>parsing is done with the lightweight tagsoup parser, which implies no validation.
+<a name="line-164"></a>
+<a name="line-165"></a>&gt; readDocument [ (a_parse_html,     "1")
+<a name="line-166"></a>&gt;              , (a_proxy,          "www-cache:3128")
+<a name="line-167"></a>&gt;              , (a_curl,           "1")
+<a name="line-168"></a>&gt;              , (a_issue_warnings, "0")
+<a name="line-169"></a>&gt;              ] "<a href="http://www.haskell.org/">http://www.haskell.org/</a>"
+<a name="line-170"></a>
+<a name="line-171"></a>reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy \"www-cache\" at port 3128
+<a name="line-172"></a>
+<a name="line-173"></a>&gt; readDocument [ (a_validate,          "1")
+<a name="line-174"></a>&gt;              , (a_check_namespace,   "1")
+<a name="line-175"></a>&gt;              , (a_remove_whitespace, "1")
+<a name="line-176"></a>&gt;              , (a_trace,             "2")
+<a name="line-177"></a>&gt;              ] "<a href="http://www.w3c.org/">http://www.w3c.org/</a>"
 <a name="line-178"></a>
-<a name="line-179"></a><a name="readDocument"></a><span class='definition'>readDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
-<a name="line-180"></a><span class='definition'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>src</span>
-<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceLevel</span>
-<a name="line-182"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-183"></a>      <span class='varid'>addInputOptionsToSystemState</span>
-<a name="line-184"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-185"></a>      <span class='varid'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>src</span>
-<a name="line-186"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-187"></a>      <span class='layout'>(</span> <span class='varid'>processDoc</span> <span class='varop'>$&lt;</span> <span class='varid'>getMimeType</span> <span class='layout'>)</span>
-<a name="line-188"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-189"></a>      <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" processed"</span><span class='layout'>)</span>
-<a name="line-190"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-191"></a>      <span class='varid'>traceSource</span>
-<a name="line-192"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-193"></a>      <span class='varid'>traceTree</span>
-<a name="line-194"></a>    <span class='keyword'>where</span>
-<a name="line-195"></a>    <span class='varid'>options</span>
-<a name="line-196"></a> 	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>
-<a name="line-197"></a>
-<a name="line-198"></a>    <span class='varid'>defaultOptions</span>
-<a name="line-199"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_parse_html</span><span class='layout'>,</span>		  <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-200"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_tagsoup</span><span class='layout'>,</span>		  <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-201"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_validate</span><span class='layout'>,</span>		  <span class='varid'>v_1</span> <span class='layout'>)</span>
-<a name="line-202"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_issue_warnings</span><span class='layout'>,</span>		  <span class='varid'>v_1</span> <span class='layout'>)</span>
-<a name="line-203"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_check_namespaces</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-204"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_canonicalize</span><span class='layout'>,</span>		  <span class='varid'>v_1</span> <span class='layout'>)</span>
-<a name="line-205"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-206"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-207"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-208"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_ignore_encoding_errors</span><span class='layout'>,</span>   <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-209"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_ignore_none_xml_contents</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-210"></a>	  <span class='keyglyph'>]</span>
-<a name="line-211"></a>
-<a name="line-212"></a>    <span class='varid'>traceLevel</span>
-<a name="line-213"></a>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>this</span> <span class='layout'>(</span><span class='varid'>setTraceLevel</span> <span class='varop'>.</span> <span class='varid'>read</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>a_trace</span> <span class='varop'>$</span> <span class='varid'>options</span>
-<a name="line-214"></a>
-<a name="line-215"></a>    <span class='varid'>addInputOptionsToSystemState</span>
-<a name="line-216"></a>	<span class='keyglyph'>=</span> <span class='varid'>addSysOptions</span> <span class='varid'>options</span>
-<a name="line-217"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-218"></a>	  <span class='varid'>loadMineTypes</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_mime_types</span> <span class='varid'>userOptions</span><span class='layout'>)</span>
-<a name="line-219"></a>	  <span class='keyword'>where</span>
-<a name="line-220"></a>	  <span class='varid'>addSysOptions</span>
-<a name="line-221"></a>	      <span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>setParamString</span><span class='layout'>)</span>
-<a name="line-222"></a>	  <span class='varid'>loadMineTypes</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-223"></a>	  <span class='varid'>loadMineTypes</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTableFromFile</span> <span class='varid'>f</span>
-<a name="line-224"></a>
-<a name="line-225"></a>    <span class='varid'>getMimeType</span>
-<a name="line-226"></a>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span>
-<a name="line-227"></a>
-<a name="line-228"></a>    <span class='varid'>processDoc</span> <span class='varid'>mimeType</span>
-<a name="line-229"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" (mime type: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>mimeType</span> <span class='varop'>++</span> <span class='str'>") will be processed"</span><span class='layout'>)</span>
-<a name="line-230"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-231"></a>	  <span class='varid'>parse</span>
-<a name="line-232"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-233"></a>	  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isXmlOrHtml</span>
-<a name="line-234"></a>	    <span class='keyword'>then</span> <span class='layout'>(</span> <span class='varid'>checknamespaces</span>
-<a name="line-235"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-236"></a>		   <span class='varid'>canonicalize</span>
-<a name="line-237"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-238"></a>		   <span class='varid'>whitespace</span>
-<a name="line-239"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-240"></a>		   <span class='varid'>relax</span>
-<a name="line-241"></a>		 <span class='layout'>)</span>
-<a name="line-242"></a>	    <span class='keyword'>else</span> <span class='varid'>this</span>
-<a name="line-243"></a>	  <span class='layout'>)</span>
-<a name="line-244"></a>	<span class='keyword'>where</span>
-<a name="line-245"></a>	<span class='varid'>parse</span>
-<a name="line-246"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isHtml</span>
-<a name="line-247"></a>	      <span class='varop'>||</span> 
-<a name="line-248"></a>	      <span class='varid'>withTagSoup</span>		<span class='keyglyph'>=</span> <span class='varid'>parseHtmlDocument</span>			<span class='comment'>-- parse as HTML or with tagsoup XML</span>
-<a name="line-249"></a>					  <span class='varid'>withTagSoup</span>
-<a name="line-250"></a>					  <span class='varid'>withNamespaces</span>
-<a name="line-251"></a>					  <span class='varid'>issueW</span>
-<a name="line-252"></a>					  <span class='layout'>(</span><span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>preserveCmt</span><span class='layout'>)</span>
-<a name="line-253"></a>					  <span class='varid'>removeWS</span>
-<a name="line-254"></a>					  <span class='varid'>isHtml</span>
-<a name="line-255"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>parseXmlDocument</span> <span class='conid'>False</span>		<span class='comment'>-- for Relax NG use XML parser without validation</span>
-<a name="line-256"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isXml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseXmlDocument</span> <span class='varid'>validate</span>		<span class='comment'>-- parse as XML</span>
-<a name="line-257"></a>	    <span class='keyglyph'>|</span> <span class='varid'>removeNoneXml</span>		<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='varid'>none</span>			<span class='comment'>-- don't parse, if mime type is not XML nore HTML</span>
-<a name="line-258"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>					<span class='comment'>-- but remove contents when option is set</span>
-<a name="line-259"></a>	<span class='varid'>checknamespaces</span>
-<a name="line-260"></a>	    <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>withNamespaces</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>withTagSoup</span><span class='layout'>)</span>
-<a name="line-261"></a>	      <span class='varop'>||</span>
-<a name="line-262"></a>	      <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>propagateAndValidateNamespaces</span>
-<a name="line-263"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-264"></a>	<span class='varid'>canonicalize</span>
-<a name="line-265"></a>	    <span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span>		<span class='keyglyph'>=</span> <span class='varid'>this</span>					<span class='comment'>-- tagsoup already removes redundant struff</span>
-<a name="line-266"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>
-<a name="line-267"></a>	    <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>
-<a name="line-268"></a>	      <span class='varop'>&amp;&amp;</span>
-<a name="line-269"></a>	      <span class='varid'>preserveCmt</span>			<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>
-<a name="line-270"></a>	    <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>	<span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>
-<a name="line-271"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-272"></a>	<span class='varid'>relax</span>
-<a name="line-273"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>validateDocumentWithRelaxSchema</span> <span class='varid'>options</span> <span class='varid'>relaxSchema</span>
-<a name="line-274"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-275"></a>	<span class='varid'>whitespace</span>
-<a name="line-276"></a>	    <span class='keyglyph'>|</span> <span class='varid'>removeWS</span>
-<a name="line-277"></a>	      <span class='varop'>&amp;&amp;</span>
-<a name="line-278"></a>	      <span class='varid'>not</span> <span class='varid'>withTagSoup</span>		<span class='keyglyph'>=</span> <span class='varid'>removeDocWhiteSpace</span>			<span class='comment'>-- tagsoup already removes whitespace</span>
-<a name="line-279"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-280"></a>	<span class='varid'>validateWithRelax</span>	<span class='keyglyph'>=</span> <span class='varid'>hasEntry</span> <span class='varid'>a_relax_schema</span> <span class='varid'>options</span>
-<a name="line-281"></a>	<span class='varid'>relaxSchema</span>		<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_relax_schema</span> <span class='varid'>options</span>
-<a name="line-282"></a>	<span class='varid'>parseHtml</span>		<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_html</span>
-<a name="line-283"></a>	<span class='varid'>isHtml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseHtml</span>				<span class='comment'>-- force HTML</span>
-<a name="line-284"></a>				  <span class='varop'>||</span>
-<a name="line-285"></a>				  <span class='layout'>(</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mimeType</span> <span class='layout'>)</span>
-<a name="line-286"></a>	<span class='varid'>isXml</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>parseHtml</span> <span class='layout'>)</span>
-<a name="line-287"></a>				  <span class='varop'>||</span>
-<a name="line-288"></a>				  <span class='layout'>(</span> <span class='varid'>parseByMimeType</span>
-<a name="line-289"></a>				    <span class='varop'>&amp;&amp;</span>
-<a name="line-290"></a>				    <span class='layout'>(</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mimeType</span>
-<a name="line-291"></a>				      <span class='varop'>||</span>
-<a name="line-292"></a>				      <span class='varid'>null</span> <span class='varid'>mimeType</span>
-<a name="line-293"></a>				    <span class='layout'>)</span>					<span class='comment'>-- mime type is XML or not known</span>
-<a name="line-294"></a>				  <span class='layout'>)</span>
-<a name="line-295"></a>	<span class='varid'>isXmlOrHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isHtml</span> <span class='varop'>||</span> <span class='varid'>isXml</span>
-<a name="line-296"></a>	<span class='varid'>parseByMimeType</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_by_mimetype</span>
-<a name="line-297"></a>	<span class='varid'>validate</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate</span>
-<a name="line-298"></a>	<span class='varid'>withNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_check_namespaces</span>
-<a name="line-299"></a>	<span class='varid'>withTagSoup</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_tagsoup</span>
-<a name="line-300"></a>	<span class='varid'>issueW</span>		<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_issue_warnings</span>
-<a name="line-301"></a>	<span class='varid'>removeWS</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>
-<a name="line-302"></a>	<span class='varid'>preserveCmt</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_preserve_comment</span>
-<a name="line-303"></a>	<span class='varid'>removeNoneXml</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_ignore_none_xml_contents</span>
-<a name="line-304"></a>	<span class='varid'>hasOption</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>
-<a name="line-305"></a>
-<a name="line-306"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-307"></a>
-<a name="line-308"></a><span class='comment'>-- |</span>
-<a name="line-309"></a><span class='comment'>-- the arrow version of 'readDocument', the arrow input is the source URI</span>
-<a name="line-310"></a>
-<a name="line-311"></a><a name="readFromDocument"></a><span class='definition'>readFromDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
-<a name="line-312"></a><span class='definition'>readFromDocument</span> <span class='varid'>userOptions</span>
-<a name="line-313"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>
-<a name="line-314"></a>
-<a name="line-315"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-179"></a>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2
+<a name="line-180"></a>
+<a name="line-181"></a>for minimal complete examples see 'Text.XML.HXT.Arrow.WriteDocument.writeDocument' and 'runX', the main starting point for running an XML arrow.
+<a name="line-182"></a>-}</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="readDocument"></a><span class='definition'>readDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-185"></a><span class='definition'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>src</span>
+<a name="line-186"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceLevel</span>
+<a name="line-187"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-188"></a>      <span class='varid'>addInputOptionsToSystemState</span>
+<a name="line-189"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-190"></a>      <span class='varid'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>src</span>
+<a name="line-191"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-192"></a>      <span class='layout'>(</span> <span class='varid'>processDoc</span> <span class='varop'>$&lt;</span> <span class='varid'>getMimeType</span> <span class='layout'>)</span>
+<a name="line-193"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-194"></a>      <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" processed"</span><span class='layout'>)</span>
+<a name="line-195"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-196"></a>      <span class='varid'>traceSource</span>
+<a name="line-197"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-198"></a>      <span class='varid'>traceTree</span>
+<a name="line-199"></a>    <span class='keyword'>where</span>
+<a name="line-200"></a>    <span class='varid'>options</span>
+<a name="line-201"></a> 	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>
+<a name="line-202"></a>
+<a name="line-203"></a>    <span class='varid'>defaultOptions</span>
+<a name="line-204"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_parse_html</span><span class='layout'>,</span>		  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-205"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_tagsoup</span><span class='layout'>,</span>		  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-206"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_strict_input</span><span class='layout'>,</span>		  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-207"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_validate</span><span class='layout'>,</span>		  <span class='varid'>v_1</span> <span class='layout'>)</span>
+<a name="line-208"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_issue_warnings</span><span class='layout'>,</span>		  <span class='varid'>v_1</span> <span class='layout'>)</span>
+<a name="line-209"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_check_namespaces</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-210"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_canonicalize</span><span class='layout'>,</span>		  <span class='varid'>v_1</span> <span class='layout'>)</span>
+<a name="line-211"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-212"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-213"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>	  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-214"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_ignore_encoding_errors</span><span class='layout'>,</span>   <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-215"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_ignore_none_xml_contents</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-216"></a>	  <span class='keyglyph'>]</span>
+<a name="line-217"></a>
+<a name="line-218"></a>    <span class='varid'>traceLevel</span>
+<a name="line-219"></a>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>this</span> <span class='layout'>(</span><span class='varid'>setTraceLevel</span> <span class='varop'>.</span> <span class='varid'>read</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>a_trace</span> <span class='varop'>$</span> <span class='varid'>options</span>
+<a name="line-220"></a>
+<a name="line-221"></a>    <span class='varid'>addInputOptionsToSystemState</span>
+<a name="line-222"></a>	<span class='keyglyph'>=</span> <span class='varid'>addSysOptions</span> <span class='varid'>options</span>
+<a name="line-223"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-224"></a>	  <span class='varid'>loadMineTypes</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_mime_types</span> <span class='varid'>userOptions</span><span class='layout'>)</span>
+<a name="line-225"></a>	  <span class='keyword'>where</span>
+<a name="line-226"></a>	  <span class='varid'>addSysOptions</span>
+<a name="line-227"></a>	      <span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>setParamString</span><span class='layout'>)</span>
+<a name="line-228"></a>	  <span class='varid'>loadMineTypes</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-229"></a>	  <span class='varid'>loadMineTypes</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTableFromFile</span> <span class='varid'>f</span>
+<a name="line-230"></a>
+<a name="line-231"></a>    <span class='varid'>getMimeType</span>
+<a name="line-232"></a>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span>
+<a name="line-233"></a>
+<a name="line-234"></a>    <span class='varid'>processDoc</span> <span class='varid'>mimeType</span>
+<a name="line-235"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" (mime type: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>mimeType</span> <span class='varop'>++</span> <span class='str'>") will be processed"</span><span class='layout'>)</span>
+<a name="line-236"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-237"></a>	  <span class='varid'>parse</span>
+<a name="line-238"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-239"></a>	  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isXmlOrHtml</span>
+<a name="line-240"></a>	    <span class='keyword'>then</span> <span class='layout'>(</span> <span class='varid'>checknamespaces</span>
+<a name="line-241"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-242"></a>		   <span class='varid'>canonicalize</span>
+<a name="line-243"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-244"></a>		   <span class='varid'>whitespace</span>
+<a name="line-245"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-246"></a>		   <span class='varid'>relax</span>
+<a name="line-247"></a>		 <span class='layout'>)</span>
+<a name="line-248"></a>	    <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-249"></a>	  <span class='layout'>)</span>
+<a name="line-250"></a>	<span class='keyword'>where</span>
+<a name="line-251"></a>	<span class='varid'>parse</span>
+<a name="line-252"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isHtml</span>
+<a name="line-253"></a>	      <span class='varop'>||</span> 
+<a name="line-254"></a>	      <span class='varid'>withTagSoup</span>		<span class='keyglyph'>=</span> <span class='varid'>parseHtmlDocument</span>			<span class='comment'>-- parse as HTML or with tagsoup XML</span>
+<a name="line-255"></a>					  <span class='varid'>withTagSoup</span>
+<a name="line-256"></a>					  <span class='varid'>withNamespaces</span>
+<a name="line-257"></a>					  <span class='varid'>issueW</span>
+<a name="line-258"></a>					  <span class='layout'>(</span><span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>preserveCmt</span><span class='layout'>)</span>
+<a name="line-259"></a>					  <span class='varid'>removeWS</span>
+<a name="line-260"></a>					  <span class='varid'>isHtml</span>
+<a name="line-261"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>parseXmlDocument</span> <span class='conid'>False</span>		<span class='comment'>-- for Relax NG use XML parser without validation</span>
+<a name="line-262"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isXml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseXmlDocument</span> <span class='varid'>validate</span>		<span class='comment'>-- parse as XML</span>
+<a name="line-263"></a>	    <span class='keyglyph'>|</span> <span class='varid'>removeNoneXml</span>		<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='varid'>none</span>			<span class='comment'>-- don't parse, if mime type is not XML nore HTML</span>
+<a name="line-264"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>					<span class='comment'>-- but remove contents when option is set</span>
+<a name="line-265"></a>	<span class='varid'>checknamespaces</span>
+<a name="line-266"></a>	    <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>withNamespaces</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>withTagSoup</span><span class='layout'>)</span>
+<a name="line-267"></a>	      <span class='varop'>||</span>
+<a name="line-268"></a>	      <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>propagateAndValidateNamespaces</span>
+<a name="line-269"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-270"></a>	<span class='varid'>canonicalize</span>
+<a name="line-271"></a>	    <span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span>		<span class='keyglyph'>=</span> <span class='varid'>this</span>					<span class='comment'>-- tagsoup already removes redundant struff</span>
+<a name="line-272"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-273"></a>	    <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>
+<a name="line-274"></a>	      <span class='varop'>&amp;&amp;</span>
+<a name="line-275"></a>	      <span class='varid'>preserveCmt</span>			<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-276"></a>	    <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>	<span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-277"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-278"></a>	<span class='varid'>relax</span>
+<a name="line-279"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>validateDocumentWithRelaxSchema</span> <span class='varid'>options</span> <span class='varid'>relaxSchema</span>
+<a name="line-280"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-281"></a>	<span class='varid'>whitespace</span>
+<a name="line-282"></a>	    <span class='keyglyph'>|</span> <span class='varid'>removeWS</span>
+<a name="line-283"></a>	      <span class='varop'>&amp;&amp;</span>
+<a name="line-284"></a>	      <span class='varid'>not</span> <span class='varid'>withTagSoup</span>		<span class='keyglyph'>=</span> <span class='varid'>removeDocWhiteSpace</span>			<span class='comment'>-- tagsoup already removes whitespace</span>
+<a name="line-285"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-286"></a>	<span class='varid'>validateWithRelax</span>	<span class='keyglyph'>=</span> <span class='varid'>hasEntry</span> <span class='varid'>a_relax_schema</span> <span class='varid'>options</span>
+<a name="line-287"></a>	<span class='varid'>relaxSchema</span>		<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_relax_schema</span> <span class='varid'>options</span>
+<a name="line-288"></a>	<span class='varid'>parseHtml</span>		<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_html</span>
+<a name="line-289"></a>	<span class='varid'>isHtml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseHtml</span>				<span class='comment'>-- force HTML</span>
+<a name="line-290"></a>				  <span class='varop'>||</span>
+<a name="line-291"></a>				  <span class='layout'>(</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mimeType</span> <span class='layout'>)</span>
+<a name="line-292"></a>	<span class='varid'>isXml</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>parseHtml</span> <span class='layout'>)</span>
+<a name="line-293"></a>				  <span class='varop'>||</span>
+<a name="line-294"></a>				  <span class='layout'>(</span> <span class='varid'>parseByMimeType</span>
+<a name="line-295"></a>				    <span class='varop'>&amp;&amp;</span>
+<a name="line-296"></a>				    <span class='layout'>(</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mimeType</span>
+<a name="line-297"></a>				      <span class='varop'>||</span>
+<a name="line-298"></a>				      <span class='varid'>null</span> <span class='varid'>mimeType</span>
+<a name="line-299"></a>				    <span class='layout'>)</span>					<span class='comment'>-- mime type is XML or not known</span>
+<a name="line-300"></a>				  <span class='layout'>)</span>
+<a name="line-301"></a>	<span class='varid'>isXmlOrHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isHtml</span> <span class='varop'>||</span> <span class='varid'>isXml</span>
+<a name="line-302"></a>	<span class='varid'>parseByMimeType</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_by_mimetype</span>
+<a name="line-303"></a>	<span class='varid'>validate</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate</span>
+<a name="line-304"></a>	<span class='varid'>withNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_check_namespaces</span>
+<a name="line-305"></a>	<span class='varid'>withTagSoup</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_tagsoup</span>
+<a name="line-306"></a>	<span class='varid'>issueW</span>		<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_issue_warnings</span>
+<a name="line-307"></a>	<span class='varid'>removeWS</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>
+<a name="line-308"></a>	<span class='varid'>preserveCmt</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_preserve_comment</span>
+<a name="line-309"></a>	<span class='varid'>removeNoneXml</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_ignore_none_xml_contents</span>
+<a name="line-310"></a>	<span class='varid'>hasOption</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>
+<a name="line-311"></a>
+<a name="line-312"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-313"></a>
+<a name="line-314"></a><span class='comment'>-- |</span>
+<a name="line-315"></a><span class='comment'>-- the arrow version of 'readDocument', the arrow input is the source URI</span>
 <a name="line-316"></a>
-<a name="line-317"></a><span class='comment'>-- |</span>
-<a name="line-318"></a><span class='comment'>-- read a document that is stored in a normal Haskell String</span>
-<a name="line-319"></a><span class='comment'>--</span>
-<a name="line-320"></a><span class='comment'>-- the same function as readDocument, but the parameter forms the input.</span>
-<a name="line-321"></a><span class='comment'>-- All options available for 'readDocument' are applicable for readString.</span>
-<a name="line-322"></a><span class='comment'>--</span>
-<a name="line-323"></a><span class='comment'>-- Default encoding: No encoding is done, the String argument is taken as Unicode string</span>
-<a name="line-324"></a>
-<a name="line-325"></a><a name="readString"></a><span class='definition'>readString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
-<a name="line-326"></a><span class='definition'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>content</span>
-<a name="line-327"></a>    <span class='keyglyph'>=</span> <span class='varid'>readDocument</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>a_encoding</span><span class='layout'>,</span> <span class='varid'>unicodeString</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>userOptions</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>stringProtocol</span> <span class='varop'>++</span> <span class='varid'>content</span><span class='layout'>)</span>
-<a name="line-328"></a>
-<a name="line-329"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-317"></a><a name="readFromDocument"></a><span class='definition'>readFromDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-318"></a><span class='definition'>readFromDocument</span> <span class='varid'>userOptions</span>
+<a name="line-319"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>
+<a name="line-320"></a>
+<a name="line-321"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-322"></a>
+<a name="line-323"></a><span class='comment'>-- |</span>
+<a name="line-324"></a><span class='comment'>-- read a document that is stored in a normal Haskell String</span>
+<a name="line-325"></a><span class='comment'>--</span>
+<a name="line-326"></a><span class='comment'>-- the same function as readDocument, but the parameter forms the input.</span>
+<a name="line-327"></a><span class='comment'>-- All options available for 'readDocument' are applicable for readString.</span>
+<a name="line-328"></a><span class='comment'>--</span>
+<a name="line-329"></a><span class='comment'>-- Default encoding: No encoding is done, the String argument is taken as Unicode string</span>
 <a name="line-330"></a>
-<a name="line-331"></a><span class='comment'>-- |</span>
-<a name="line-332"></a><span class='comment'>-- the arrow version of 'readString', the arrow input is the source URI</span>
-<a name="line-333"></a>
-<a name="line-334"></a><a name="readFromString"></a><span class='definition'>readFromString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
-<a name="line-335"></a><span class='definition'>readFromString</span> <span class='varid'>userOptions</span>
-<a name="line-336"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>
-<a name="line-337"></a>
-<a name="line-338"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-331"></a><a name="readString"></a><span class='definition'>readString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-332"></a><span class='definition'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>content</span>
+<a name="line-333"></a>    <span class='keyglyph'>=</span> <span class='varid'>readDocument</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>a_encoding</span><span class='layout'>,</span> <span class='varid'>unicodeString</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>userOptions</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>stringProtocol</span> <span class='varop'>++</span> <span class='varid'>content</span><span class='layout'>)</span>
+<a name="line-334"></a>
+<a name="line-335"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-336"></a>
+<a name="line-337"></a><span class='comment'>-- |</span>
+<a name="line-338"></a><span class='comment'>-- the arrow version of 'readString', the arrow input is the source URI</span>
 <a name="line-339"></a>
-<a name="line-340"></a><span class='comment'>-- |</span>
-<a name="line-341"></a><span class='comment'>-- parse a string as HTML content, substitute all HTML entity refs and canonicalize tree</span>
-<a name="line-342"></a><span class='comment'>-- (substitute char refs, ...). Errors are ignored.</span>
-<a name="line-343"></a><span class='comment'>-- </span>
-<a name="line-344"></a><span class='comment'>-- A simpler version of 'readFromString' but with less functionality.</span>
-<a name="line-345"></a><span class='comment'>-- Does not run in the IO monad</span>
-<a name="line-346"></a>
-<a name="line-347"></a><a name="hread"></a><span class='definition'>hread</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
-<a name="line-348"></a><span class='definition'>hread</span>
-<a name="line-349"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseHtmlContent</span>
-<a name="line-350"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-351"></a>      <span class='varid'>substHtmlEntityRefs</span>
-<a name="line-352"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-353"></a>      <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isError</span> <span class='layout'>)</span>
-<a name="line-354"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-355"></a>      <span class='varid'>canonicalizeContents</span>
-<a name="line-356"></a>
-<a name="line-357"></a><span class='comment'>-- |</span>
-<a name="line-358"></a><span class='comment'>-- parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree</span>
-<a name="line-359"></a><span class='comment'>-- (substitute char refs, ...)</span>
-<a name="line-360"></a>
-<a name="line-361"></a><a name="xread"></a><span class='definition'>xread</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
-<a name="line-362"></a><span class='definition'>xread</span>
-<a name="line-363"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlContent</span>
-<a name="line-364"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-365"></a>      <span class='varid'>substXmlEntityRefs</span>
-<a name="line-366"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-367"></a>      <span class='varid'>canonicalizeContents</span>
-<a name="line-368"></a>
-<a name="line-369"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-370"></a>
+<a name="line-340"></a><a name="readFromString"></a><span class='definition'>readFromString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-341"></a><span class='definition'>readFromString</span> <span class='varid'>userOptions</span>
+<a name="line-342"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>
+<a name="line-343"></a>
+<a name="line-344"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-345"></a>
+<a name="line-346"></a><span class='comment'>-- |</span>
+<a name="line-347"></a><span class='comment'>-- parse a string as HTML content, substitute all HTML entity refs and canonicalize tree</span>
+<a name="line-348"></a><span class='comment'>-- (substitute char refs, ...). Errors are ignored.</span>
+<a name="line-349"></a><span class='comment'>-- </span>
+<a name="line-350"></a><span class='comment'>-- A simpler version of 'readFromString' but with less functionality.</span>
+<a name="line-351"></a><span class='comment'>-- Does not run in the IO monad</span>
+<a name="line-352"></a>
+<a name="line-353"></a><a name="hread"></a><span class='definition'>hread</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-354"></a><span class='definition'>hread</span>
+<a name="line-355"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseHtmlContent</span>
+<a name="line-356"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-357"></a>      <span class='varid'>substHtmlEntityRefs</span>
+<a name="line-358"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-359"></a>      <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isError</span> <span class='layout'>)</span>
+<a name="line-360"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-361"></a>      <span class='varid'>canonicalizeContents</span>
+<a name="line-362"></a>
+<a name="line-363"></a><span class='comment'>-- |</span>
+<a name="line-364"></a><span class='comment'>-- parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree</span>
+<a name="line-365"></a><span class='comment'>-- (substitute char refs, ...)</span>
+<a name="line-366"></a>
+<a name="line-367"></a><a name="xread"></a><span class='definition'>xread</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-368"></a><span class='definition'>xread</span>
+<a name="line-369"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlContent</span>
+<a name="line-370"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-371"></a>      <span class='varid'>substXmlEntityRefs</span>
+<a name="line-372"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-373"></a>      <span class='varid'>canonicalizeContents</span>
+<a name="line-374"></a>
+<a name="line-375"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-376"></a>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html b/doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html
@@ -10,197 +10,208 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.Arrow.WriteDocument
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-9 Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
 <a name="line-9"></a>   Stability  : experimental
 <a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: WriteDocument.hs,v 1.8 2006/11/09 20:27:42 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>Compound arrow for writing XML documents
-<a name="line-14"></a>
-<a name="line-15"></a>-}</span>
-<a name="line-16"></a>
-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>
-<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>writeDocument</span>
-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>writeDocumentToString</span>
-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>prepareContents</span>
-<a name="line-23"></a>    <span class='layout'>)</span>
-<a name="line-24"></a><span class='keyword'>where</span>
-<a name="line-25"></a>
-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
-<a name="line-30"></a>
-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
-<a name="line-34"></a>
-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
-<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>indentDoc</span>
-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>
-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>
-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>escapeHtmlDoc</span>
-<a name="line-42"></a>    <span class='layout'>)</span>
-<a name="line-43"></a>
-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>
-<a name="line-45"></a>    <span class='layout'>(</span> <span class='varid'>putXmlDocument</span>
-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>encodeDocument</span>
-<a name="line-47"></a>    <span class='layout'>)</span>
+<a name="line-11"></a>
+<a name="line-12"></a>   Compound arrow for writing XML documents
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>writeDocument</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>writeDocumentToString</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>prepareContents</span>
+<a name="line-22"></a>    <span class='layout'>)</span>
+<a name="line-23"></a><span class='keyword'>where</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
+<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
+<a name="line-29"></a>
+<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>			<span class='layout'>(</span> <span class='varid'>escapeHtmlDoc</span>
+<a name="line-35"></a>						<span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>
+<a name="line-36"></a>						<span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>
+<a name="line-37"></a>						<span class='layout'>,</span> <span class='varid'>indentDoc</span>
+<a name="line-38"></a>						<span class='layout'>,</span> <span class='varid'>preventEmptyElements</span>
+<a name="line-39"></a>						<span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>
+<a name="line-40"></a>						<span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-41"></a>						<span class='layout'>)</span>
+<a name="line-42"></a>
+<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>	<span class='layout'>(</span> <span class='varid'>putXmlDocument</span>
+<a name="line-44"></a>						<span class='layout'>,</span> <span class='varid'>encodeDocument</span>
+<a name="line-45"></a>						<span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-48"></a>
-<a name="line-49"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-50"></a>
-<a name="line-51"></a><span class='comment'>{- |
-<a name="line-52"></a>the main filter for writing documents
+<a name="line-49"></a><span class='comment'>{- |
+<a name="line-50"></a>the main filter for writing documents
+<a name="line-51"></a>
+<a name="line-52"></a>this filter can be configured by an option list like 'Text.XML.HXT.Arrow.ReadDocument.readDocument'
 <a name="line-53"></a>
-<a name="line-54"></a>this filter can be configured by an option list like 'Text.XML.HXT.Arrow.ReadDocument.readDocument'
+<a name="line-54"></a>usage: @ writeDocument optionList destination @
 <a name="line-55"></a>
-<a name="line-56"></a>usage: @ writeDocument optionList destination @
+<a name="line-56"></a>if @ destination @ is the empty string or \"-\", stdout is used as output device
 <a name="line-57"></a>
-<a name="line-58"></a>if @ destination @ is the empty string or \"-\", stdout is used as output device
+<a name="line-58"></a>available options are
 <a name="line-59"></a>
-<a name="line-60"></a>available options are
+<a name="line-60"></a>* 'a_indent' : indent document for readability, (default: no indentation)
 <a name="line-61"></a>
-<a name="line-62"></a>* 'a_indent' : indent document for readability, (default: no indentation)
+<a name="line-62"></a>- 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)
 <a name="line-63"></a>
-<a name="line-64"></a>- 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)
+<a name="line-64"></a>- 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'
 <a name="line-65"></a>
-<a name="line-66"></a>- 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'
-<a name="line-67"></a>
-<a name="line-68"></a>- 'a_output_xml' : (default) issue XML: quote special XML chars \&gt;,\&lt;,\",\',&amp; where neccessary
-<a name="line-69"></a>                   add XML processing instruction
-<a name="line-70"></a>                   and encode document with respect to 'a_output_encoding',
-<a name="line-71"></a>                   if explicitly switched of, the plain text is issued, this is useful
-<a name="line-72"></a>                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...
+<a name="line-66"></a>- 'a_output_xml' : (default) issue XML: quote special XML chars \&gt;,\&lt;,\",\',&amp; where neccessary
+<a name="line-67"></a>                   add XML processing instruction
+<a name="line-68"></a>                   and encode document with respect to 'a_output_encoding',
+<a name="line-69"></a>                   if explicitly switched of, the plain text is issued, this is useful
+<a name="line-70"></a>                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...
+<a name="line-71"></a>
+<a name="line-72"></a>- 'a_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars
 <a name="line-73"></a>
-<a name="line-74"></a>- 'a_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars
-<a name="line-75"></a>
-<a name="line-76"></a>- 'a_no_xml_pi' : suppress generation of \&lt;?xml ... ?\&gt; processing instruction
-<a name="line-77"></a>
-<a name="line-78"></a>- 'a_show_tree' : show tree representation of document (for debugging)
-<a name="line-79"></a>
-<a name="line-80"></a>- 'a_show_haskell' : show Haskell representaion of document (for debugging)
-<a name="line-81"></a>
-<a name="line-82"></a> a minimal main program for copying a document
-<a name="line-83"></a> has the following structure:
+<a name="line-74"></a>- 'a_no_empty_elements' : do not write the short form \&lt;name .../\&gt; for empty elements. When 'a_output_html' is set,
+<a name="line-75"></a>                          the always empty HTML elements are still written in short form, but not the others, as e.g. the script element.
+<a name="line-76"></a>                          Empty script elements, like \&lt;script href=\"...\"/\&gt;, are always a problem for firefox and others.
+<a name="line-77"></a>                          When XML output is generated with this option, all empty elements are written in the long form.
+<a name="line-78"></a>
+<a name="line-79"></a>- 'a_no_xml_pi' : suppress generation of \&lt;?xml ... ?\&gt; processing instruction
+<a name="line-80"></a>
+<a name="line-81"></a>- 'a_show_tree' : show tree representation of document (for debugging)
+<a name="line-82"></a>
+<a name="line-83"></a>- 'a_show_haskell' : show Haskell representaion of document (for debugging)
 <a name="line-84"></a>
-<a name="line-85"></a>&gt; module Main
-<a name="line-86"></a>&gt; where
-<a name="line-87"></a>&gt; 
-<a name="line-88"></a>&gt; import Text.XML.HXT.Arrow
-<a name="line-89"></a>&gt; 
-<a name="line-90"></a>&gt; main        :: IO ()
-<a name="line-91"></a>&gt; main
-<a name="line-92"></a>&gt;     = do
-<a name="line-93"></a>&gt;       runX ( readDocument  [] "hello.xml"
-<a name="line-94"></a>&gt;              &gt;&gt;&gt;
-<a name="line-95"></a>&gt;              writeDocument [] "bye.xml"
-<a name="line-96"></a>&gt;            )
-<a name="line-97"></a>&gt;       return ()
-<a name="line-98"></a>
-<a name="line-99"></a>an example for copying a document to standard output with tracing and evaluation of
-<a name="line-100"></a>error code is:
+<a name="line-85"></a> a minimal main program for copying a document
+<a name="line-86"></a> has the following structure:
+<a name="line-87"></a>
+<a name="line-88"></a>&gt; module Main
+<a name="line-89"></a>&gt; where
+<a name="line-90"></a>&gt; 
+<a name="line-91"></a>&gt; import Text.XML.HXT.Arrow
+<a name="line-92"></a>&gt; 
+<a name="line-93"></a>&gt; main        :: IO ()
+<a name="line-94"></a>&gt; main
+<a name="line-95"></a>&gt;     = do
+<a name="line-96"></a>&gt;       runX ( readDocument  [] "hello.xml"
+<a name="line-97"></a>&gt;              &gt;&gt;&gt;
+<a name="line-98"></a>&gt;              writeDocument [] "bye.xml"
+<a name="line-99"></a>&gt;            )
+<a name="line-100"></a>&gt;       return ()
 <a name="line-101"></a>
-<a name="line-102"></a>&gt; module Main
-<a name="line-103"></a>&gt; where
-<a name="line-104"></a>&gt; 
-<a name="line-105"></a>&gt; import Text.XML.HXT.Arrow
-<a name="line-106"></a>&gt; import System.Exit
+<a name="line-102"></a>an example for copying a document to standard output with tracing and evaluation of
+<a name="line-103"></a>error code is:
+<a name="line-104"></a>
+<a name="line-105"></a>&gt; module Main
+<a name="line-106"></a>&gt; where
 <a name="line-107"></a>&gt; 
-<a name="line-108"></a>&gt; main        :: IO ()
-<a name="line-109"></a>&gt; main
-<a name="line-110"></a>&gt;     = do
-<a name="line-111"></a>&gt;       [rc] &lt;- runX ( readDocument  [ (a_trace, "1")
-<a name="line-112"></a>&gt;                                    ] "hello.xml"
-<a name="line-113"></a>&gt;                      &gt;&gt;&gt;
-<a name="line-114"></a>&gt;                      writeDocument [ (a_output_encoding, isoLatin1)
-<a name="line-115"></a>&gt;                                    ] "-"        -- output to stdout
+<a name="line-108"></a>&gt; import Text.XML.HXT.Arrow
+<a name="line-109"></a>&gt; import System.Exit
+<a name="line-110"></a>&gt; 
+<a name="line-111"></a>&gt; main        :: IO ()
+<a name="line-112"></a>&gt; main
+<a name="line-113"></a>&gt;     = do
+<a name="line-114"></a>&gt;       [rc] &lt;- runX ( readDocument  [ (a_trace, "1")
+<a name="line-115"></a>&gt;                                    ] "hello.xml"
 <a name="line-116"></a>&gt;                      &gt;&gt;&gt;
-<a name="line-117"></a>&gt;                      getErrStatus
-<a name="line-118"></a>&gt;                    )
-<a name="line-119"></a>&gt;       exitWith ( if rc &gt;= c_err
-<a name="line-120"></a>&gt;                  then ExitFailure 1
-<a name="line-121"></a>&gt;                  else ExitSuccess
-<a name="line-122"></a>&gt;                )
-<a name="line-123"></a>-}</span>
-<a name="line-124"></a>
-<a name="line-125"></a><a name="writeDocument"></a><span class='definition'>writeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-126"></a><span class='definition'>writeDocument</span> <span class='varid'>userOptions</span> <span class='varid'>dst</span>
-<a name="line-127"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"writeDocument: destination is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>dst</span><span class='layout'>)</span>
-<a name="line-128"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-129"></a>		<span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>
-<a name="line-130"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-131"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>
-<a name="line-132"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-133"></a>		<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"writeDocument: finished"</span>
-<a name="line-134"></a>	      <span class='layout'>)</span>
-<a name="line-135"></a>      <span class='varop'>`when`</span>
-<a name="line-136"></a>      <span class='varid'>documentStatusOk</span>
-<a name="line-137"></a>
-<a name="line-138"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-139"></a>
-<a name="line-140"></a><span class='comment'>-- |</span>
-<a name="line-141"></a><span class='comment'>-- Convert a document into a string. Formating is done the same way</span>
-<a name="line-142"></a><span class='comment'>-- and with the same options as in 'writeDocument'.</span>
-<a name="line-143"></a>
-<a name="line-144"></a><a name="writeDocumentToString"></a><span class='definition'>writeDocumentToString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span>  <span class='keyglyph'>-&gt;</span>  <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
-<a name="line-145"></a><span class='definition'>writeDocumentToString</span> <span class='varid'>userOptions</span>
-<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>
-<a name="line-147"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-148"></a>      <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
-<a name="line-149"></a>
-<a name="line-150"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-151"></a>
-<a name="line-152"></a><span class='comment'>-- |</span>
-<a name="line-153"></a><span class='comment'>-- indent and format output</span>
+<a name="line-117"></a>&gt;                      writeDocument [ (a_output_encoding, isoLatin1)
+<a name="line-118"></a>&gt;                                    ] "-"        -- output to stdout
+<a name="line-119"></a>&gt;                      &gt;&gt;&gt;
+<a name="line-120"></a>&gt;                      getErrStatus
+<a name="line-121"></a>&gt;                    )
+<a name="line-122"></a>&gt;       exitWith ( if rc &gt;= c_err
+<a name="line-123"></a>&gt;                  then ExitFailure 1
+<a name="line-124"></a>&gt;                  else ExitSuccess
+<a name="line-125"></a>&gt;                )
+<a name="line-126"></a>-}</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="writeDocument"></a><span class='definition'>writeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-129"></a><span class='definition'>writeDocument</span> <span class='varid'>userOptions</span> <span class='varid'>dst</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"writeDocument: destination is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>dst</span><span class='layout'>)</span>
+<a name="line-131"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>		<span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>
+<a name="line-133"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-134"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>
+<a name="line-135"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-136"></a>		<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"writeDocument: finished"</span>
+<a name="line-137"></a>	      <span class='layout'>)</span>
+<a name="line-138"></a>      <span class='varop'>`when`</span>
+<a name="line-139"></a>      <span class='varid'>documentStatusOk</span>
+<a name="line-140"></a>
+<a name="line-141"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-142"></a>
+<a name="line-143"></a><span class='comment'>-- |</span>
+<a name="line-144"></a><span class='comment'>-- Convert a document into a string. Formating is done the same way</span>
+<a name="line-145"></a><span class='comment'>-- and with the same options as in 'writeDocument'.</span>
+<a name="line-146"></a>
+<a name="line-147"></a><a name="writeDocumentToString"></a><span class='definition'>writeDocumentToString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span>  <span class='keyglyph'>-&gt;</span>  <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-148"></a><span class='definition'>writeDocumentToString</span> <span class='varid'>userOptions</span>
+<a name="line-149"></a>    <span class='keyglyph'>=</span> <span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>
+<a name="line-150"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-151"></a>      <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-152"></a>
+<a name="line-153"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-154"></a>
-<a name="line-155"></a><a name="prepareContents"></a><span class='definition'>prepareContents</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-156"></a><span class='definition'>prepareContents</span> <span class='varid'>userOptions</span>
-<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='varid'>indent</span>
-<a name="line-158"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-159"></a>      <span class='varid'>format</span>
-<a name="line-160"></a>    <span class='keyword'>where</span>
-<a name="line-161"></a>    <span class='varid'>indent</span>
-<a name="line-162"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_indent</span>		<span class='keyglyph'>=</span> <span class='varid'>indentDoc</span>			<span class='comment'>-- document indentation</span>
-<a name="line-163"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>	<span class='keyglyph'>=</span> <span class='varid'>removeDocWhiteSpace</span>		<span class='comment'>-- remove all whitespace between tags</span>
-<a name="line-164"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-165"></a>
-<a name="line-166"></a>    <span class='varid'>format</span>
-<a name="line-167"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_tree</span>		<span class='keyglyph'>=</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-168"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_haskell</span>	<span class='keyglyph'>=</span> <span class='varid'>haskellRepOfXmlDoc</span>
-<a name="line-169"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_html</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeHtmlDoc</span>			<span class='comment'>-- escape al XML and HTML chars &gt;= 128</span>
-<a name="line-170"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-171"></a>					  <span class='varid'>encodeDocument</span>		<span class='comment'>-- convert doc into text with respect to output encoding with ASCII as default</span>
-<a name="line-172"></a>					    <span class='varid'>suppressXmlPi</span> <span class='layout'>(</span> <span class='varid'>lookupDef</span> <span class='varid'>usAscii</span> <span class='varid'>a_output_encoding</span> <span class='varid'>options</span> <span class='layout'>)</span>
-<a name="line-173"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_xml</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeXmlDoc</span>			<span class='comment'>-- escape lt, gt, amp, quot, </span>
-<a name="line-174"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-175"></a>					  <span class='varid'>encodeDocument</span>		<span class='comment'>-- convert doc into text with respect to output encoding</span>
-<a name="line-176"></a>					    <span class='varid'>suppressXmlPi</span> <span class='layout'>(</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_output_encoding</span> <span class='varid'>options</span> <span class='layout'>)</span>
-<a name="line-177"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-178"></a>
-<a name="line-179"></a>    <span class='varid'>suppressXmlPi</span>							<span class='comment'>-- remove &lt;?xml ... ?&gt; when set</span>
-<a name="line-180"></a>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_no_xml_pi</span>
-<a name="line-181"></a>
-<a name="line-182"></a>    <span class='varid'>hasOption</span> <span class='varid'>n</span>
-<a name="line-183"></a>	<span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>
-<a name="line-184"></a>
-<a name="line-185"></a>    <span class='varid'>options</span> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> 
-<a name="line-186"></a>              <span class='varid'>userOptions</span> 
-<a name="line-187"></a>	      <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_indent</span><span class='layout'>,</span>		<span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-188"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>	<span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-189"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_xml</span><span class='layout'>,</span>		<span class='varid'>v_1</span> <span class='layout'>)</span>
-<a name="line-190"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_show_tree</span><span class='layout'>,</span>		<span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-191"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>	<span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-192"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_html</span><span class='layout'>,</span>	<span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-193"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span>          <span class='varid'>v_0</span> <span class='layout'>)</span>
-<a name="line-194"></a>	      <span class='keyglyph'>]</span>
-<a name="line-195"></a>
-<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-155"></a><span class='comment'>-- |</span>
+<a name="line-156"></a><span class='comment'>-- indent and format output</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="prepareContents"></a><span class='definition'>prepareContents</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-159"></a><span class='definition'>prepareContents</span> <span class='varid'>userOptions</span>
+<a name="line-160"></a>    <span class='keyglyph'>=</span> <span class='varid'>indent</span>
+<a name="line-161"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-162"></a>      <span class='varid'>format</span>
+<a name="line-163"></a>    <span class='keyword'>where</span>
+<a name="line-164"></a>    <span class='varid'>formatEmptyElems</span>
+<a name="line-165"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_no_empty_elements</span> <span class='keyglyph'>=</span> <span class='varid'>preventEmptyElements</span>
+<a name="line-166"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                     <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='varid'>this</span>
+<a name="line-167"></a>    <span class='varid'>indent</span>
+<a name="line-168"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_indent</span>		<span class='keyglyph'>=</span> <span class='varid'>indentDoc</span>			<span class='comment'>-- document indentation</span>
+<a name="line-169"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>	<span class='keyglyph'>=</span> <span class='varid'>removeDocWhiteSpace</span>		<span class='comment'>-- remove all whitespace between tags</span>
+<a name="line-170"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-171"></a>
+<a name="line-172"></a>    <span class='varid'>format</span>
+<a name="line-173"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_tree</span>		<span class='keyglyph'>=</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-174"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_haskell</span>	<span class='keyglyph'>=</span> <span class='varid'>haskellRepOfXmlDoc</span>
+<a name="line-175"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_html</span>	<span class='keyglyph'>=</span> <span class='varid'>formatEmptyElems</span> <span class='conid'>True</span>
+<a name="line-176"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-177"></a>					  <span class='varid'>escapeHtmlDoc</span>			<span class='comment'>-- escape al XML and HTML chars &gt;= 128</span>
+<a name="line-178"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-179"></a>					  <span class='varid'>encodeDocument</span>		<span class='comment'>-- convert doc into text with respect to output encoding with ASCII as default</span>
+<a name="line-180"></a>					    <span class='varid'>suppressXmlPi</span> <span class='layout'>(</span> <span class='varid'>lookupDef</span> <span class='varid'>usAscii</span> <span class='varid'>a_output_encoding</span> <span class='varid'>options</span> <span class='layout'>)</span>
+<a name="line-181"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_xml</span>	<span class='keyglyph'>=</span> <span class='varid'>formatEmptyElems</span> <span class='conid'>False</span>
+<a name="line-182"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-183"></a>					  <span class='varid'>escapeXmlDoc</span>			<span class='comment'>-- escape lt, gt, amp, quot, </span>
+<a name="line-184"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-185"></a>					  <span class='varid'>encodeDocument</span>		<span class='comment'>-- convert doc into text with respect to output encoding</span>
+<a name="line-186"></a>					    <span class='varid'>suppressXmlPi</span> <span class='layout'>(</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_output_encoding</span> <span class='varid'>options</span> <span class='layout'>)</span>
+<a name="line-187"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-188"></a>
+<a name="line-189"></a>    <span class='varid'>suppressXmlPi</span>							<span class='comment'>-- remove &lt;?xml ... ?&gt; when set</span>
+<a name="line-190"></a>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_no_xml_pi</span>
+<a name="line-191"></a>
+<a name="line-192"></a>    <span class='varid'>hasOption</span> <span class='varid'>n</span>
+<a name="line-193"></a>	<span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>
+<a name="line-194"></a>
+<a name="line-195"></a>    <span class='varid'>options</span> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> 
+<a name="line-196"></a>              <span class='varid'>userOptions</span> 
+<a name="line-197"></a>	      <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_indent</span><span class='layout'>,</span>		<span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-198"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>	<span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-199"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_xml</span><span class='layout'>,</span>		<span class='varid'>v_1</span> <span class='layout'>)</span>
+<a name="line-200"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_show_tree</span><span class='layout'>,</span>		<span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-201"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>	<span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-202"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_html</span><span class='layout'>,</span>	<span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-203"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span>          <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-204"></a>	      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_no_empty_elements</span><span class='layout'>,</span>  <span class='varid'>v_0</span> <span class='layout'>)</span>
+<a name="line-205"></a>	      <span class='keyglyph'>]</span>
+<a name="line-206"></a>
+<a name="line-207"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html
@@ -91,7 +91,7 @@
 <a name="line-83"></a>
 <a name="line-84"></a><span class='comment'>-- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names</span>
 <a name="line-85"></a>
-<a name="line-86"></a><a name="getXPathTreesInDocWithNsEnv"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-86"></a><a name="getXPathTreesInDocWithNsEnv"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
 <a name="line-87"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span>	<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>
 <a name="line-88"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-89"></a>					  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>PT</span><span class='varop'>.</span><span class='varid'>getXPathSubTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>
@@ -114,7 +114,7 @@
 <a name="line-106"></a>
 <a name="line-107"></a><span class='comment'>-- | Same as 'getXPathTrees' but with namespace environment for the XPath names</span>
 <a name="line-108"></a>
-<a name="line-109"></a><a name="getXPathTreesWithNsEnv"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-109"></a><a name="getXPathTreesWithNsEnv"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
 <a name="line-110"></a><span class='definition'>getXPathTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>PT</span><span class='varop'>.</span><span class='varid'>getXPathSubTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>
 <a name="line-111"></a>
 <a name="line-112"></a><span class='comment'>-- | Select a set of nodes via an XPath expression from an arbitray XML tree</span>
@@ -130,7 +130,7 @@
 <a name="line-122"></a>
 <a name="line-123"></a><span class='comment'>-- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names</span>
 <a name="line-124"></a>
-<a name="line-125"></a><a name="getXPathNodeSetWithNsEnv"></a><span class='definition'>getXPathNodeSetWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-125"></a><a name="getXPathNodeSetWithNsEnv"></a><span class='definition'>getXPathNodeSetWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>
 <a name="line-126"></a><span class='definition'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>PT</span><span class='varop'>.</span><span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span><span class='layout'>)</span>
 <a name="line-127"></a>
 <a name="line-128"></a><span class='comment'>-- ------------------------------------------------------------</span>
@@ -234,7 +234,7 @@
 <a name="line-226"></a>
 <a name="line-227"></a><span class='comment'>-- | Same as 'processXPathTrees' but with namespace environment for the XPath names</span>
 <a name="line-228"></a>
-<a name="line-229"></a><a name="processXPathTreesWithNsEnv"></a><span class='definition'>processXPathTreesWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-229"></a><a name="processXPathTreesWithNsEnv"></a><span class='definition'>processXPathTreesWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
 <a name="line-230"></a><span class='definition'>processXPathTreesWithNsEnv</span> <span class='varid'>f</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span>
 <a name="line-231"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
 <a name="line-232"></a>      <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-&gt;</span> <span class='varid'>processChildren</span> <span class='varid'>pns</span>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html
@@ -50,472 +50,468 @@
 <a name="line-42"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPathSimple</span>
 <a name="line-43"></a><span class='keyword'>where</span>
 <a name="line-44"></a>
-<a name="line-45"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>
-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>
-<a name="line-47"></a>
-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-45"></a><span class='comment'>-- import qualified Debug.Trace as T</span>
+<a name="line-46"></a>
+<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>
+<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>
 <a name="line-49"></a>
-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
-<a name="line-51"></a>    <span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>
-<a name="line-52"></a>
-<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-55"></a>
-<a name="line-56"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span> <span class='keyword'>as</span> <span class='conid'>XP</span>
-<a name="line-57"></a>    <span class='layout'>(</span> <span class='varid'>getXPathTreesWithNsEnv</span>
-<a name="line-58"></a>    <span class='layout'>)</span>
-<a name="line-59"></a>
-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
-<a name="line-61"></a>    <span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span>
-<a name="line-62"></a>    <span class='layout'>)</span>
-<a name="line-63"></a>
-<a name="line-64"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
-<a name="line-65"></a>    <span class='layout'>(</span> <span class='conid'>XPNumber</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-66"></a>    <span class='layout'>,</span> <span class='conid'>Expr</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-67"></a>    <span class='layout'>,</span> <span class='conid'>Op</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-68"></a>    <span class='layout'>,</span> <span class='conid'>XPathNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-69"></a>    <span class='layout'>,</span> <span class='conid'>LocationPath</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-70"></a>    <span class='layout'>,</span> <span class='conid'>Path</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-71"></a>    <span class='layout'>,</span> <span class='conid'>XStep</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-72"></a>    <span class='layout'>,</span> <span class='conid'>AxisSpec</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-73"></a>    <span class='layout'>,</span> <span class='conid'>NodeTest</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-74"></a>    <span class='layout'>,</span> <span class='conid'>XPathValue</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-75"></a>    <span class='layout'>)</span>
+<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>		<span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span> <span class='keyword'>as</span> <span class='conid'>XP</span>	<span class='layout'>(</span> <span class='varid'>getXPathTreesWithNsEnv</span>
+<a name="line-58"></a>						<span class='layout'>)</span>
+<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>			<span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-60"></a>						<span class='layout'>)</span>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>	<span class='layout'>(</span> <span class='conid'>XPNumber</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-63"></a>						<span class='layout'>,</span> <span class='conid'>Expr</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-64"></a>						<span class='layout'>,</span> <span class='conid'>Op</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-65"></a>						<span class='layout'>,</span> <span class='conid'>XPathNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-66"></a>						<span class='layout'>,</span> <span class='conid'>LocationPath</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-67"></a>						<span class='layout'>,</span> <span class='conid'>Path</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-68"></a>						<span class='layout'>,</span> <span class='conid'>XStep</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-69"></a>						<span class='layout'>,</span> <span class='conid'>AxisSpec</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-70"></a>						<span class='layout'>,</span> <span class='conid'>NodeTest</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-71"></a>						<span class='layout'>,</span> <span class='conid'>XPathValue</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-72"></a>						<span class='layout'>)</span>
+<a name="line-73"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>		<span class='layout'>(</span> <span class='varid'>parseXPath</span>
+<a name="line-74"></a>						<span class='layout'>,</span> <span class='varid'>parseNumber</span>
+<a name="line-75"></a>						<span class='layout'>)</span>
 <a name="line-76"></a>
-<a name="line-77"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
-<a name="line-78"></a>    <span class='layout'>(</span> <span class='varid'>parseXPath</span>
-<a name="line-79"></a>    <span class='layout'>,</span> <span class='varid'>parseNumber</span>
-<a name="line-80"></a>    <span class='layout'>)</span>
+<a name="line-77"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- |</span>
+<a name="line-80"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc'</span>
 <a name="line-81"></a>
-<a name="line-82"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-83"></a>
-<a name="line-84"></a><span class='comment'>-- |</span>
-<a name="line-85"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc'</span>
-<a name="line-86"></a>
-<a name="line-87"></a><a name="getXPathTreesInDoc"></a><span class='definition'>getXPathTreesInDoc</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-88"></a><span class='definition'>getXPathTreesInDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span> <span class='conid'>[]</span>
-<a name="line-89"></a>
-<a name="line-90"></a><span class='comment'>-- |</span>
-<a name="line-91"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv'</span>
-<a name="line-92"></a>
-<a name="line-93"></a><a name="getXPathTreesInDocWithNsEnv"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-94"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span>	<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>
-<a name="line-95"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-96"></a>					  <span class='varid'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span>
-<a name="line-97"></a><span class='comment'>-- |</span>
-<a name="line-98"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTrees'</span>
-<a name="line-99"></a>
-<a name="line-100"></a><a name="getXPathTrees"></a><span class='definition'>getXPathTrees</span>				<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-101"></a><span class='definition'>getXPathTrees</span>				<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesWithNsEnv</span> <span class='conid'>[]</span>
-<a name="line-102"></a>
-<a name="line-103"></a><span class='comment'>-- |</span>
-<a name="line-104"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv'</span>
-<a name="line-105"></a>
-<a name="line-106"></a><a name="getXPathTreesWithNsEnv"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-107"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>=</span> <span class='varid'>tryGetXPath</span>
-<a name="line-108"></a>
-<a name="line-109"></a>
-<a name="line-110"></a><a name="tryGetXPath"></a><span class='definition'>tryGetXPath</span>				<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-111"></a><span class='definition'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getXPathTreesWithNsEnvSimple</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>
-<a name="line-112"></a>					    <span class='varop'>&amp;&amp;&amp;</span>
-<a name="line-113"></a>					    <span class='varid'>listA</span> <span class='layout'>(</span>   <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>getXPathTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>
-<a name="line-114"></a>					  <span class='layout'>)</span>
-<a name="line-115"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-116"></a>					  <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>take</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isError</span><span class='layout'>)</span>
-<a name="line-117"></a>					      <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>snd</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>unlistA</span><span class='layout'>)</span>
-<a name="line-118"></a>					      <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>unlistA</span><span class='layout'>)</span>
-<a name="line-119"></a>
-<a name="line-120"></a><span class='comment'>-- |</span>
-<a name="line-121"></a><span class='comment'>-- The xpath interpreter for simple xpath expressions.</span>
-<a name="line-122"></a><span class='comment'>--</span>
-<a name="line-123"></a><span class='comment'>-- In case of a too complicated or illegal xpath expression an error</span>
-<a name="line-124"></a><span class='comment'>-- node is returned, else the list of selected XML trees</span>
+<a name="line-82"></a><a name="getXPathTreesInDoc"></a><span class='definition'>getXPathTreesInDoc</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-83"></a><span class='definition'>getXPathTreesInDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span> <span class='conid'>[]</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='comment'>-- |</span>
+<a name="line-86"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv'</span>
+<a name="line-87"></a>
+<a name="line-88"></a><a name="getXPathTreesInDocWithNsEnv"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-89"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span>	<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-90"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-91"></a>					  <span class='varid'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span>
+<a name="line-92"></a><span class='comment'>-- |</span>
+<a name="line-93"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTrees'</span>
+<a name="line-94"></a>
+<a name="line-95"></a><a name="getXPathTrees"></a><span class='definition'>getXPathTrees</span>				<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-96"></a><span class='definition'>getXPathTrees</span>				<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesWithNsEnv</span> <span class='conid'>[]</span>
+<a name="line-97"></a>
+<a name="line-98"></a><span class='comment'>-- |</span>
+<a name="line-99"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv'</span>
+<a name="line-100"></a>
+<a name="line-101"></a><a name="getXPathTreesWithNsEnv"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-102"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>=</span> <span class='varid'>tryGetXPath</span>
+<a name="line-103"></a>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="tryGetXPath"></a><span class='definition'>tryGetXPath</span>				<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-106"></a><span class='definition'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getXPathTreesWithNsEnvSimple</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>
+<a name="line-107"></a>					    <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-108"></a>					    <span class='varid'>listA</span> <span class='layout'>(</span>   <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>getXPathTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>
+<a name="line-109"></a>					  <span class='layout'>)</span>
+<a name="line-110"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-111"></a>					  <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>take</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isError</span><span class='layout'>)</span>
+<a name="line-112"></a>					      <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>snd</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>unlistA</span><span class='layout'>)</span>
+<a name="line-113"></a>					      <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>unlistA</span><span class='layout'>)</span>
+<a name="line-114"></a>
+<a name="line-115"></a><span class='comment'>-- |</span>
+<a name="line-116"></a><span class='comment'>-- The xpath interpreter for simple xpath expressions.</span>
+<a name="line-117"></a><span class='comment'>--</span>
+<a name="line-118"></a><span class='comment'>-- In case of a too complicated or illegal xpath expression an error</span>
+<a name="line-119"></a><span class='comment'>-- node is returned, else the list of selected XML trees</span>
+<a name="line-120"></a>
+<a name="line-121"></a><a name="getXPathTreesWithNsEnvSimple"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-122"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span> <span class='varid'>env</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>getXP</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-123"></a>
+<a name="line-124"></a><span class='comment'>-- ----------------------------------------</span>
 <a name="line-125"></a>
-<a name="line-126"></a><a name="getXPathTreesWithNsEnvSimple"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-127"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span> <span class='varid'>env</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>getXP</span> <span class='varid'>env</span> <span class='varid'>s</span>
-<a name="line-128"></a>
-<a name="line-129"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-130"></a>
-<a name="line-131"></a><a name="getXP"></a><span class='definition'>getXP</span>			<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-132"></a><span class='definition'>getXP</span> <span class='varid'>env</span> <span class='varid'>s</span>		<span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>err</span>
-<a name="line-133"></a>				  <span class='varop'>.</span>
-<a name="line-134"></a>				  <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"Syntax error in XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>": "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span>
-<a name="line-135"></a>				  <span class='varop'>.</span>
-<a name="line-136"></a>				  <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>show</span>
-<a name="line-137"></a>				 <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span>
-<a name="line-138"></a>						     <span class='str'>" too complicated for simple arrow evaluation"</span>
-<a name="line-139"></a>						   <span class='layout'>)</span>
-<a name="line-140"></a>					      <span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>compXPath</span>
-<a name="line-141"></a>				   <span class='layout'>)</span>
-<a name="line-142"></a>			  <span class='varop'>.</span>
-<a name="line-143"></a>			  <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='varid'>env</span> <span class='str'>""</span>
-<a name="line-144"></a>			  <span class='varop'>$</span> <span class='varid'>s</span>
+<a name="line-126"></a><a name="getXP"></a><span class='definition'>getXP</span>				<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-127"></a><span class='definition'>getXP</span> <span class='varid'>env</span> <span class='varid'>s</span>			<span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span> <span class='varid'>err</span>
+<a name="line-128"></a>					   <span class='varop'>.</span>
+<a name="line-129"></a>					   <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"Syntax error in XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>": "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-130"></a>					   <span class='varop'>.</span>
+<a name="line-131"></a>					   <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>show</span>
+<a name="line-132"></a>					 <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span>
+<a name="line-133"></a>							     <span class='str'>" too complicated for simple arrow evaluation"</span>
+<a name="line-134"></a>							   <span class='layout'>)</span>
+<a name="line-135"></a>						      <span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>compXPath</span>
+<a name="line-136"></a>					   <span class='layout'>)</span>
+<a name="line-137"></a>				  <span class='comment'>-- . ( \ e -&gt; T.trace (("getXP: xp = "++) . show $ e) e)</span>
+<a name="line-138"></a>				  <span class='varop'>.</span>
+<a name="line-139"></a>				  <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='varid'>env</span> <span class='str'>""</span>
+<a name="line-140"></a>				  <span class='varop'>$</span> <span class='varid'>s</span>
+<a name="line-141"></a>
+<a name="line-142"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="XPArrow"></a><span class='keyword'>type</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span>
 <a name="line-145"></a>
-<a name="line-146"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-147"></a>
-<a name="line-148"></a><a name="XPArrow"></a><span class='keyword'>type</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-149"></a>
-<a name="line-150"></a><a name="mk"></a><span class='definition'>mk</span>				<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-151"></a><span class='definition'>mk</span>				<span class='keyglyph'>=</span> <span class='conid'>Just</span>
-<a name="line-152"></a>
-<a name="line-153"></a><a name="unwrap"></a><span class='definition'>unwrap</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-154"></a><span class='definition'>unwrap</span>				<span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>toThis</span>
-<a name="line-155"></a>
-<a name="line-156"></a><a name=">>>>"></a><span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;&gt;</span><span class='layout'>)</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-157"></a><span class='conid'>Nothing</span>   <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>a2</span>
-<a name="line-158"></a><a name="a1"></a><span class='definition'>a1</span>        <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>
-<a name="line-159"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f2</span>
-<a name="line-160"></a>
-<a name="line-161"></a><a name="&&&&"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;&amp;</span><span class='layout'>)</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span>
-<a name="line-162"></a><span class='conid'>Nothing</span>   <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>this''</span> <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>
-<a name="line-163"></a><span class='definition'>a1</span>        <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>     <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>this''</span>
-<a name="line-164"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>f2</span>
-<a name="line-165"></a>
-<a name="line-166"></a><a name="<+>>"></a><span class='layout'>(</span><span class='varop'>&lt;+&gt;&gt;</span><span class='layout'>)</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-167"></a><span class='conid'>Nothing</span>   <span class='varop'>&lt;+&gt;&gt;</span> <span class='sel'>_a2</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-168"></a><span class='sel'>_a1</span>       <span class='varop'>&lt;+&gt;&gt;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-169"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&lt;+&gt;&gt;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>f2</span>
-<a name="line-170"></a>
-<a name="line-171"></a><a name="guards'"></a><span class='definition'>guards'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-172"></a><span class='conid'>Nothing</span>   <span class='varop'>`guards'`</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>a2</span>
-<a name="line-173"></a><a name="guards'"></a><span class='definition'>a1</span>        <span class='varop'>`guards'`</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this''</span>
-<a name="line-174"></a><a name="guards'"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>`guards'`</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>`guards`</span> <span class='varid'>f2</span>
-<a name="line-175"></a>
-<a name="line-176"></a><a name="this'"></a><span class='definition'>this'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-177"></a><span class='definition'>this'</span>				<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-178"></a>
-<a name="line-179"></a><a name="this''"></a><span class='definition'>this''</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-180"></a><span class='definition'>this''</span>				<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>this</span>
+<a name="line-146"></a><a name="mk"></a><span class='definition'>mk</span>				<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-147"></a><span class='definition'>mk</span>				<span class='keyglyph'>=</span> <span class='conid'>Just</span>
+<a name="line-148"></a>
+<a name="line-149"></a><a name="unwrap"></a><span class='definition'>unwrap</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-150"></a><span class='definition'>unwrap</span>				<span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>toThis</span>
+<a name="line-151"></a>
+<a name="line-152"></a><a name=">>>>"></a><span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;&gt;</span><span class='layout'>)</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-153"></a><span class='conid'>Nothing</span>   <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>a2</span>
+<a name="line-154"></a><a name="a1"></a><span class='definition'>a1</span>        <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>
+<a name="line-155"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f2</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="&&&&"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;&amp;</span><span class='layout'>)</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-158"></a><span class='conid'>Nothing</span>   <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>this''</span> <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>
+<a name="line-159"></a><span class='definition'>a1</span>        <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>     <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>this''</span>
+<a name="line-160"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>f2</span>
+<a name="line-161"></a>
+<a name="line-162"></a><a name="<+>>"></a><span class='layout'>(</span><span class='varop'>&lt;+&gt;&gt;</span><span class='layout'>)</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-163"></a><span class='conid'>Nothing</span>   <span class='varop'>&lt;+&gt;&gt;</span> <span class='sel'>_a2</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-164"></a><span class='sel'>_a1</span>       <span class='varop'>&lt;+&gt;&gt;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-165"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&lt;+&gt;&gt;</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>f2</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="guards'"></a><span class='definition'>guards'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-168"></a><span class='conid'>Nothing</span>   <span class='varop'>`guards'`</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>a2</span>
+<a name="line-169"></a><a name="guards'"></a><span class='definition'>a1</span>        <span class='varop'>`guards'`</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this''</span>
+<a name="line-170"></a><a name="guards'"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>`guards'`</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>`guards`</span> <span class='varid'>f2</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="this'"></a><span class='definition'>this'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-173"></a><span class='definition'>this'</span>				<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="this''"></a><span class='definition'>this''</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-176"></a><span class='definition'>this''</span>				<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>this</span>
+<a name="line-177"></a>
+<a name="line-178"></a><a name="toThis"></a><span class='definition'>toThis</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-179"></a><span class='definition'>toThis</span> <span class='conid'>Nothing</span>			<span class='keyglyph'>=</span> <span class='varid'>this''</span>
+<a name="line-180"></a><span class='definition'>toThis</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>a</span>
 <a name="line-181"></a>
-<a name="line-182"></a><a name="toThis"></a><span class='definition'>toThis</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-183"></a><span class='definition'>toThis</span> <span class='conid'>Nothing</span>			<span class='keyglyph'>=</span> <span class='varid'>this''</span>
-<a name="line-184"></a><span class='definition'>toThis</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>a</span>
-<a name="line-185"></a>
-<a name="line-186"></a><a name="getChildren'"></a><span class='definition'>getChildren'</span>			<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-187"></a><span class='definition'>getChildren'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a</span>
-<a name="line-188"></a>
-<a name="line-189"></a><a name="getAttrl'"></a><span class='definition'>getAttrl'</span>			<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-190"></a><span class='definition'>getAttrl'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a</span>
-<a name="line-191"></a>
-<a name="line-192"></a><a name="multi'"></a><span class='definition'>multi'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-193"></a><span class='definition'>multi'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-194"></a>
-<a name="line-195"></a><a name="deep'"></a><span class='definition'>deep'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-196"></a><span class='definition'>deep'</span> <span class='varid'>a</span>				<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-197"></a>
-<a name="line-198"></a><a name="xIndex"></a><span class='definition'>xIndex</span>				<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='varid'>b</span>
-<a name="line-199"></a><span class='definition'>xIndex</span> <span class='varid'>i</span>
-<a name="line-200"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='varid'>none</span>
-<a name="line-201"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-202"></a>
-<a name="line-203"></a><a name="xString"></a><span class='definition'>xString</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
-<a name="line-204"></a><span class='definition'>xString</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>unwrap</span> <span class='varid'>a</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isText</span><span class='layout'>)</span>
-<a name="line-205"></a>
-<a name="line-206"></a><a name="xNumber'"></a><span class='definition'>xNumber'</span>			<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XPNumber</span>
-<a name="line-207"></a><span class='definition'>xNumber'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span>  <span class='varid'>xString</span> <span class='varid'>a</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>toNumber</span>
-<a name="line-208"></a>
-<a name="line-209"></a><span class='comment'>-- ------------------------------</span>
-<a name="line-210"></a>
-<a name="line-211"></a><a name="deadEndStreet"></a><span class='definition'>deadEndStreet</span>			<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>m</span> <span class='varid'>a</span>
-<a name="line-212"></a><span class='definition'>deadEndStreet</span>			<span class='keyglyph'>=</span> <span class='varid'>fail</span> <span class='str'>"XPath expression too complicated for XmlArrows"</span>
-<a name="line-213"></a>
-<a name="line-214"></a><a name="compXPath"></a><span class='definition'>compXPath</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-215"></a><span class='definition'>compXPath</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-216"></a>				  <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXP</span> <span class='varid'>e</span>
-<a name="line-217"></a>				  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>unwrap</span> <span class='varid'>r</span>
-<a name="line-218"></a>
-<a name="line-219"></a><a name="compXP"></a><span class='definition'>compXP</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-220"></a><span class='definition'>compXP</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-221"></a>				<span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>
-<a name="line-222"></a><span class='definition'>compXP</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-223"></a>				  <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXP</span> <span class='varid'>e1</span>
-<a name="line-224"></a>				  <span class='varid'>compFP</span> <span class='varid'>el</span> <span class='varid'>r</span>
-<a name="line-225"></a><span class='definition'>compXP</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-226"></a>
-<a name="line-227"></a><a name="compFP"></a><span class='definition'>compFP</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-228"></a><span class='definition'>compFP</span> <span class='conid'>[]</span>      <span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>
-<a name="line-229"></a><span class='definition'>compFP</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span> <span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-230"></a>				  <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compPred</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='keyglyph'>]</span> <span class='varid'>r</span>
-<a name="line-231"></a>				  <span class='varid'>compFP</span> <span class='varid'>es</span> <span class='varid'>r1</span>
-<a name="line-232"></a>
-<a name="line-233"></a><a name="compLP"></a><span class='definition'>compLP</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-234"></a><span class='definition'>compLP</span> <span class='conid'>[]</span>     <span class='varid'>r</span>			<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>
-<a name="line-235"></a><span class='definition'>compLP</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>r</span>			<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-236"></a>				  <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXS</span> <span class='varid'>x</span> <span class='varid'>r</span>
-<a name="line-237"></a>				  <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compLP</span> <span class='varid'>xs</span> <span class='varid'>a1</span>
-<a name="line-238"></a>				  <span class='varid'>return</span> <span class='keyword'>as</span>
-<a name="line-239"></a>
-<a name="line-240"></a><a name="compXS"></a><span class='definition'>compXS</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XStep</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-241"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Child</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-242"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
-<a name="line-243"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>an</span><span class='layout'>)</span>
-<a name="line-244"></a>
-<a name="line-245"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>DescendantOrSelf</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-246"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-247"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
-<a name="line-248"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>
-<a name="line-249"></a>
-<a name="line-250"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Descendant</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-251"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-252"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
-<a name="line-253"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>
-<a name="line-254"></a>
-<a name="line-255"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Self</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-182"></a><a name="getChildren'"></a><span class='definition'>getChildren'</span>			<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-183"></a><span class='definition'>getChildren'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a</span>
+<a name="line-184"></a>
+<a name="line-185"></a><a name="getAttrl'"></a><span class='definition'>getAttrl'</span>			<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-186"></a><span class='definition'>getAttrl'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a</span>
+<a name="line-187"></a>
+<a name="line-188"></a><a name="multi'"></a><span class='definition'>multi'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-189"></a><span class='definition'>multi'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-190"></a>
+<a name="line-191"></a><a name="deep'"></a><span class='definition'>deep'</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-192"></a><span class='definition'>deep'</span> <span class='varid'>a</span>				<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-193"></a>
+<a name="line-194"></a><a name="xIndex"></a><span class='definition'>xIndex</span>				<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='varid'>b</span>
+<a name="line-195"></a><span class='definition'>xIndex</span> <span class='varid'>i</span>
+<a name="line-196"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-197"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-198"></a>
+<a name="line-199"></a><a name="xString"></a><span class='definition'>xString</span>				<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-200"></a><span class='definition'>xString</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>unwrap</span> <span class='varid'>a</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isText</span><span class='layout'>)</span>
+<a name="line-201"></a>
+<a name="line-202"></a><a name="xNumber'"></a><span class='definition'>xNumber'</span>			<span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XPNumber</span>
+<a name="line-203"></a><span class='definition'>xNumber'</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span>  <span class='varid'>xString</span> <span class='varid'>a</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>toNumber</span>
+<a name="line-204"></a>
+<a name="line-205"></a><span class='comment'>-- ------------------------------</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="deadEndStreet"></a><span class='definition'>deadEndStreet</span>			<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>m</span> <span class='varid'>a</span>
+<a name="line-208"></a><span class='definition'>deadEndStreet</span>			<span class='keyglyph'>=</span> <span class='varid'>fail</span> <span class='str'>"XPath expression too complicated for XmlArrows"</span>
+<a name="line-209"></a>
+<a name="line-210"></a><a name="compXPath"></a><span class='definition'>compXPath</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-211"></a><span class='definition'>compXPath</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-212"></a>				  <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXP</span> <span class='varid'>e</span>
+<a name="line-213"></a>				  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>unwrap</span> <span class='varid'>r</span>
+<a name="line-214"></a>
+<a name="line-215"></a><a name="compXP"></a><span class='definition'>compXP</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-216"></a><span class='definition'>compXP</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-217"></a>				<span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>
+<a name="line-218"></a><span class='definition'>compXP</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-219"></a>				  <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXP</span> <span class='varid'>e1</span>
+<a name="line-220"></a>				  <span class='varid'>compFP</span> <span class='varid'>el</span> <span class='varid'>r</span>
+<a name="line-221"></a><span class='definition'>compXP</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-222"></a>
+<a name="line-223"></a><a name="compFP"></a><span class='definition'>compFP</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-224"></a><span class='definition'>compFP</span> <span class='conid'>[]</span>      <span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-225"></a><span class='definition'>compFP</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span> <span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-226"></a>				  <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compPred</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='keyglyph'>]</span> <span class='varid'>r</span>
+<a name="line-227"></a>				  <span class='varid'>compFP</span> <span class='varid'>es</span> <span class='varid'>r1</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="compLP"></a><span class='definition'>compLP</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-230"></a><span class='definition'>compLP</span> <span class='conid'>[]</span>     <span class='varid'>r</span>			<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-231"></a><span class='definition'>compLP</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>r</span>			<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-232"></a>				  <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXS</span> <span class='varid'>x</span> <span class='varid'>r</span>
+<a name="line-233"></a>				  <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compLP</span> <span class='varid'>xs</span> <span class='varid'>a1</span>
+<a name="line-234"></a>				  <span class='varid'>return</span> <span class='keyword'>as</span>
+<a name="line-235"></a>
+<a name="line-236"></a><a name="compXS"></a><span class='definition'>compXS</span>				<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XStep</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-237"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Child</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-238"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
+<a name="line-239"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-240"></a>
+<a name="line-241"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>DescendantOrSelf</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-242"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-243"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
+<a name="line-244"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-245"></a>
+<a name="line-246"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Descendant</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-247"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-248"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
+<a name="line-249"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-250"></a>
+<a name="line-251"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Self</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-252"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-253"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
+<a name="line-254"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-255"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Attribute</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
 <a name="line-256"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-257"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>
-<a name="line-258"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>an</span><span class='layout'>)</span>
-<a name="line-259"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Attribute</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-260"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-261"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTA</span> <span class='varid'>nt</span>
-<a name="line-262"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>getAttrl'</span> <span class='varid'>an</span><span class='layout'>)</span>
-<a name="line-263"></a>
-<a name="line-264"></a><span class='definition'>compXS</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-257"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTA</span> <span class='varid'>nt</span>
+<a name="line-258"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>getAttrl'</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-259"></a>
+<a name="line-260"></a><span class='definition'>compXS</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="compNTE"></a><span class='definition'>compNTE</span>				<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-263"></a><span class='definition'>compNTE</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>compNameT</span> <span class='varid'>isElem</span> <span class='varid'>qn</span>
+<a name="line-264"></a><span class='definition'>compNTE</span> <span class='varid'>nt</span>			<span class='keyglyph'>=</span> <span class='varid'>compNT</span> <span class='varid'>nt</span>
 <a name="line-265"></a>
-<a name="line-266"></a><a name="compNTE"></a><span class='definition'>compNTE</span>				<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-267"></a><span class='definition'>compNTE</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>compNameT</span> <span class='varid'>isElem</span> <span class='varid'>qn</span>
-<a name="line-268"></a><span class='definition'>compNTE</span> <span class='varid'>nt</span>			<span class='keyglyph'>=</span> <span class='varid'>compNT</span> <span class='varid'>nt</span>
+<a name="line-266"></a><a name="compNTA"></a><span class='definition'>compNTA</span>				<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-267"></a><span class='definition'>compNTA</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>compNameT</span> <span class='varid'>isAttr</span> <span class='varid'>qn</span>
+<a name="line-268"></a><span class='definition'>compNTA</span> <span class='varid'>nt</span>			<span class='keyglyph'>=</span> <span class='varid'>compNT</span> <span class='varid'>nt</span>
 <a name="line-269"></a>
-<a name="line-270"></a><a name="compNTA"></a><span class='definition'>compNTA</span>				<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-271"></a><span class='definition'>compNTA</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>compNameT</span> <span class='varid'>isAttr</span> <span class='varid'>qn</span>
-<a name="line-272"></a><span class='definition'>compNTA</span> <span class='varid'>nt</span>			<span class='keyglyph'>=</span> <span class='varid'>compNT</span> <span class='varid'>nt</span>
-<a name="line-273"></a>
-<a name="line-274"></a><a name="compNameT"></a><span class='definition'>compNameT</span>			<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-275"></a><span class='definition'>compNameT</span> <span class='varid'>ist</span> <span class='varid'>qn</span>
-<a name="line-276"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span>
-<a name="line-277"></a>				  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>qualifiedName</span> <span class='varid'>qn</span> <span class='varop'>==</span> <span class='str'>"*"</span>
-<a name="line-278"></a>				    <span class='keyword'>then</span> <span class='varid'>ist</span>
-<a name="line-279"></a>				    <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span>
-<a name="line-280"></a>				  <span class='layout'>)</span>
-<a name="line-281"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span>
-<a name="line-282"></a>				  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>localPart</span> <span class='varid'>qn</span> <span class='varop'>==</span> <span class='str'>"*"</span>
-<a name="line-283"></a>				    <span class='keyword'>then</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasNamespaceUri</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>
-<a name="line-284"></a>				    <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>qn</span>
-<a name="line-285"></a>
-<a name="line-286"></a>				  <span class='layout'>)</span>
-<a name="line-287"></a>
-<a name="line-288"></a><a name="compNT"></a><span class='definition'>compNT</span>				<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-289"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span>       	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>this'</span>
-<a name="line-290"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPCommentNode</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isCmt</span>
-<a name="line-291"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPPINode</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isPi</span>
-<a name="line-292"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPTextNode</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isText</span>
-<a name="line-293"></a>
-<a name="line-294"></a><span class='definition'>compNT</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-295"></a>
-<a name="line-296"></a><a name="compPred"></a><span class='definition'>compPred</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-297"></a><span class='definition'>compPred</span> <span class='conid'>[]</span>     <span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>
-<a name="line-298"></a><span class='definition'>compPred</span> <span class='layout'>(</span><span class='varid'>e</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span>	<span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-299"></a>				  <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span>
-<a name="line-300"></a>				  <span class='varid'>compPred</span> <span class='varid'>es</span> <span class='varid'>r1</span>
-<a name="line-301"></a>
-<a name="line-302"></a><a name="compPred1"></a><span class='definition'>compPred1</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-303"></a><span class='definition'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-304"></a>				    <span class='varid'>ix</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compIntExpr</span> <span class='varid'>e</span>
-<a name="line-305"></a>				    <span class='varid'>return</span> <span class='varop'>.</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xIndex</span> <span class='varid'>ix</span>
-<a name="line-306"></a>				  <span class='layout'>)</span>
-<a name="line-307"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-308"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-309"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e</span>
-<a name="line-310"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this'</span><span class='layout'>)</span>
-<a name="line-311"></a>				  <span class='layout'>)</span>
-<a name="line-312"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-313"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-314"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e</span>
-<a name="line-315"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this'</span><span class='layout'>)</span>
-<a name="line-316"></a>				  <span class='layout'>)</span>
-<a name="line-317"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-318"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-319"></a>				    <span class='varid'>b1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e</span>
-<a name="line-320"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>b1</span> <span class='keyword'>then</span> <span class='varid'>r</span> <span class='keyword'>else</span> <span class='varid'>mk</span> <span class='varid'>none</span>
-<a name="line-321"></a>				  <span class='layout'>)</span>
-<a name="line-322"></a>
-<a name="line-323"></a><a name="compRelPathExpr"></a><span class='definition'>compRelPathExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-324"></a><span class='definition'>compRelPathExpr</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-325"></a>				<span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>
-<a name="line-326"></a><span class='definition'>compRelPathExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-270"></a><a name="compNameT"></a><span class='definition'>compNameT</span>			<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-271"></a><span class='definition'>compNameT</span> <span class='varid'>ist</span> <span class='varid'>qn</span>
+<a name="line-272"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span>
+<a name="line-273"></a>				  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>qualifiedName</span> <span class='varid'>qn</span> <span class='varop'>==</span> <span class='str'>"*"</span>
+<a name="line-274"></a>				    <span class='keyword'>then</span> <span class='varid'>ist</span>
+<a name="line-275"></a>				    <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-276"></a>				  <span class='layout'>)</span>
+<a name="line-277"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span>
+<a name="line-278"></a>				  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>localPart</span> <span class='varid'>qn</span> <span class='varop'>==</span> <span class='str'>"*"</span>
+<a name="line-279"></a>				    <span class='keyword'>then</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasNamespaceUri</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-280"></a>				    <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>qn</span>
+<a name="line-281"></a>
+<a name="line-282"></a>				  <span class='layout'>)</span>
+<a name="line-283"></a>
+<a name="line-284"></a><a name="compNT"></a><span class='definition'>compNT</span>				<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-285"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span>       	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>this'</span>
+<a name="line-286"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPCommentNode</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isCmt</span>
+<a name="line-287"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPPINode</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isPi</span>
+<a name="line-288"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPTextNode</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isText</span>
+<a name="line-289"></a>
+<a name="line-290"></a><span class='definition'>compNT</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-291"></a>
+<a name="line-292"></a><a name="compPred"></a><span class='definition'>compPred</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-293"></a><span class='definition'>compPred</span> <span class='conid'>[]</span>     <span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-294"></a><span class='definition'>compPred</span> <span class='layout'>(</span><span class='varid'>e</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span>	<span class='varid'>r</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-295"></a>				  <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span>
+<a name="line-296"></a>				  <span class='varid'>compPred</span> <span class='varid'>es</span> <span class='varid'>r1</span>
+<a name="line-297"></a>
+<a name="line-298"></a><a name="compPred1"></a><span class='definition'>compPred1</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-299"></a><span class='definition'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-300"></a>				    <span class='varid'>ix</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compIntExpr</span> <span class='varid'>e</span>
+<a name="line-301"></a>				    <span class='varid'>return</span> <span class='varop'>.</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xIndex</span> <span class='varid'>ix</span>
+<a name="line-302"></a>				  <span class='layout'>)</span>
+<a name="line-303"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-304"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-305"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e</span>
+<a name="line-306"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this'</span><span class='layout'>)</span>
+<a name="line-307"></a>				  <span class='layout'>)</span>
+<a name="line-308"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-309"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-310"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e</span>
+<a name="line-311"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this'</span><span class='layout'>)</span>
+<a name="line-312"></a>				  <span class='layout'>)</span>
+<a name="line-313"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-314"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-315"></a>				    <span class='varid'>b1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e</span>
+<a name="line-316"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>b1</span> <span class='keyword'>then</span> <span class='varid'>r</span> <span class='keyword'>else</span> <span class='varid'>mk</span> <span class='varid'>none</span>
+<a name="line-317"></a>				  <span class='layout'>)</span>
+<a name="line-318"></a>
+<a name="line-319"></a><a name="compRelPathExpr"></a><span class='definition'>compRelPathExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-320"></a><span class='definition'>compRelPathExpr</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-321"></a>				<span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>
+<a name="line-322"></a><span class='definition'>compRelPathExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-323"></a>
+<a name="line-324"></a><a name="compStringExpr"></a><span class='definition'>compStringExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>String</span>
+<a name="line-325"></a><span class='definition'>compStringExpr</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>s</span>
+<a name="line-326"></a><span class='definition'>compStringExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
 <a name="line-327"></a>
-<a name="line-328"></a><a name="compStringExpr"></a><span class='definition'>compStringExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>String</span>
-<a name="line-329"></a><span class='definition'>compStringExpr</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>s</span>
-<a name="line-330"></a><span class='definition'>compStringExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-331"></a>
-<a name="line-332"></a><a name="compNumberExpr"></a><span class='definition'>compNumberExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>XPNumber</span>
-<a name="line-333"></a><span class='definition'>compNumberExpr</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>n</span>
-<a name="line-334"></a><span class='definition'>compNumberExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"number"</span> <span class='keyglyph'>[</span><span class='varid'>f1</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-335"></a>				<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-336"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>
-<a name="line-337"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>1</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='conid'>Pos0</span>
-<a name="line-338"></a>				  <span class='layout'>)</span>
-<a name="line-339"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-340"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-341"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span> <span class='varid'>f1</span>
-<a name="line-342"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>toNumber</span> <span class='varid'>s</span>
-<a name="line-343"></a>				  <span class='layout'>)</span>
-<a name="line-344"></a><span class='definition'>compNumberExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-345"></a>
-<a name="line-346"></a><a name="compIntExpr"></a><span class='definition'>compIntExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>Int</span>
-<a name="line-347"></a><span class='definition'>compIntExpr</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-348"></a>				    <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span> <span class='varid'>e</span>
-<a name="line-349"></a>				    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span>
-<a name="line-350"></a>				  <span class='layout'>)</span>
-<a name="line-351"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-352"></a>				  <span class='varid'>deadEndStreet</span>
-<a name="line-353"></a>
-<a name="line-354"></a>
-<a name="line-355"></a><a name="compBoolExpr"></a><span class='definition'>compBoolExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>Bool</span>
-<a name="line-356"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>f</span> <span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-357"></a>    <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"true"</span><span class='layout'>,</span> <span class='str'>"false"</span><span class='keyglyph'>]</span>
-<a name="line-358"></a>				<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='str'>"true"</span>
-<a name="line-359"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"not"</span> <span class='keyglyph'>[</span><span class='varid'>f1</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-360"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-361"></a>				  <span class='varid'>v1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>
-<a name="line-362"></a>				  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='varid'>v1</span>
-<a name="line-363"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-364"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>nz</span> <span class='varid'>n</span>
-<a name="line-365"></a>				  <span class='keyword'>where</span>
-<a name="line-366"></a>				  <span class='varid'>nz</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>/=</span> <span class='num'>0</span>
-<a name="line-367"></a>				  <span class='varid'>nz</span> <span class='conid'>NegInf</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-368"></a>				  <span class='varid'>nz</span> <span class='conid'>PosInf</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-369"></a>				  <span class='varid'>nz</span> <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-370"></a><span class='definition'>compBoolExpr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-371"></a>
-<a name="line-372"></a><a name="compGenExpr"></a><span class='definition'>compGenExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-373"></a><span class='definition'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='layout'>,</span><span class='varid'>e2</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-374"></a>				<span class='keyglyph'>=</span> <span class='varid'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- on arg is a string expr</span>
+<a name="line-328"></a><a name="compNumberExpr"></a><span class='definition'>compNumberExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>XPNumber</span>
+<a name="line-329"></a><span class='definition'>compNumberExpr</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-330"></a><span class='definition'>compNumberExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"number"</span> <span class='keyglyph'>[</span><span class='varid'>f1</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-331"></a>				<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-332"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>
+<a name="line-333"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>1</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='conid'>Pos0</span>
+<a name="line-334"></a>				  <span class='layout'>)</span>
+<a name="line-335"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-336"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-337"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span> <span class='varid'>f1</span>
+<a name="line-338"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>toNumber</span> <span class='varid'>s</span>
+<a name="line-339"></a>				  <span class='layout'>)</span>
+<a name="line-340"></a><span class='definition'>compNumberExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-341"></a>
+<a name="line-342"></a><a name="compIntExpr"></a><span class='definition'>compIntExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>Int</span>
+<a name="line-343"></a><span class='definition'>compIntExpr</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-344"></a>				    <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span> <span class='varid'>e</span>
+<a name="line-345"></a>				    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-346"></a>				  <span class='layout'>)</span>
+<a name="line-347"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-348"></a>				  <span class='varid'>deadEndStreet</span>
+<a name="line-349"></a>
+<a name="line-350"></a>
+<a name="line-351"></a><a name="compBoolExpr"></a><span class='definition'>compBoolExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>Bool</span>
+<a name="line-352"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>f</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-353"></a>    <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"true"</span><span class='layout'>,</span> <span class='str'>"false"</span><span class='keyglyph'>]</span>
+<a name="line-354"></a>				<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='str'>"true"</span>
+<a name="line-355"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"not"</span> <span class='keyglyph'>[</span><span class='varid'>f1</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-356"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-357"></a>				  <span class='varid'>v1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>
+<a name="line-358"></a>				  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='varid'>v1</span>
+<a name="line-359"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-360"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>nz</span> <span class='varid'>n</span>
+<a name="line-361"></a>				  <span class='keyword'>where</span>
+<a name="line-362"></a>				  <span class='varid'>nz</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>/=</span> <span class='num'>0</span>
+<a name="line-363"></a>				  <span class='varid'>nz</span> <span class='conid'>NegInf</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-364"></a>				  <span class='varid'>nz</span> <span class='conid'>PosInf</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-365"></a>				  <span class='varid'>nz</span> <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-366"></a><span class='definition'>compBoolExpr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-367"></a>
+<a name="line-368"></a><a name="compGenExpr"></a><span class='definition'>compGenExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-369"></a><span class='definition'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='layout'>,</span><span class='varid'>e2</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-370"></a>				<span class='keyglyph'>=</span> <span class='varid'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- on arg is a string expr</span>
+<a name="line-371"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-372"></a>				  <span class='varid'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- one arg is a number expr</span>
+<a name="line-373"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-374"></a>				  <span class='varid'>compBool</span>   <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- and/or</span>
 <a name="line-375"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-376"></a>				  <span class='varid'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- one arg is a number expr</span>
-<a name="line-377"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-378"></a>				  <span class='varid'>compBool</span>   <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- and/or</span>
-<a name="line-379"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-380"></a>				  <span class='varid'>compPath</span>   <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- nodeset equality</span>
-<a name="line-381"></a>
-<a name="line-382"></a><span class='definition'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-383"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>And</span><span class='layout'>,</span> <span class='conid'>Or</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='varid'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='layout'>,</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varid'>el</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-384"></a>
-<a name="line-385"></a><span class='definition'>compGenExpr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-386"></a>
-<a name="line-387"></a><a name="compString"></a><span class='definition'>compString</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-388"></a><span class='definition'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
-<a name="line-389"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-390"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e2</span>
-<a name="line-391"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>
-<a name="line-392"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>s</span>
-<a name="line-393"></a>				  <span class='layout'>)</span>
-<a name="line-394"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-395"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-396"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e1</span>
-<a name="line-397"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>
-<a name="line-398"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>s</span>
-<a name="line-399"></a>				  <span class='layout'>)</span>
-<a name="line-400"></a>				  <span class='keyword'>where</span>
-<a name="line-401"></a>				  <span class='varid'>mkEq'</span> <span class='varid'>a'</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xString</span> <span class='varid'>a'</span>
-<a name="line-402"></a>							<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-403"></a>							<span class='varid'>isA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Eq</span>
-<a name="line-404"></a>							      <span class='keyword'>then</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>s'</span><span class='layout'>)</span>
-<a name="line-405"></a>							      <span class='keyword'>else</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='varid'>s'</span><span class='layout'>)</span>
-<a name="line-406"></a>							    <span class='layout'>)</span>
-<a name="line-407"></a>						      <span class='layout'>)</span>
-<a name="line-408"></a>						      <span class='varop'>`guards`</span> <span class='varid'>this</span>	<span class='comment'>-- just for type match</span>
-<a name="line-409"></a>						    <span class='layout'>)</span>
-<a name="line-410"></a><span class='definition'>compString</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-411"></a>
-<a name="line-412"></a><a name="compNumber"></a><span class='definition'>compNumber</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-413"></a><span class='definition'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
-<a name="line-414"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>,</span> <span class='conid'>LessEq</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='keyglyph'>]</span>
-<a name="line-415"></a>				<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-416"></a>				    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e2</span>
-<a name="line-417"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>
-<a name="line-418"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>n</span>
-<a name="line-419"></a>				  <span class='layout'>)</span>
-<a name="line-420"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-421"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-422"></a>				    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e1</span>
-<a name="line-423"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>
-<a name="line-424"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>n</span>
-<a name="line-425"></a>				  <span class='layout'>)</span>
-<a name="line-426"></a>				  <span class='keyword'>where</span>
-<a name="line-427"></a>				  <span class='varid'>mkEq'</span> <span class='varid'>a'</span> <span class='varid'>n'</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xNumber'</span> <span class='varid'>a'</span>
-<a name="line-428"></a>							<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-429"></a>							<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>op</span> <span class='keyword'>of</span>
-<a name="line-430"></a>								    <span class='conid'>Eq</span>        <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>
-<a name="line-431"></a>								    <span class='conid'>NEq</span>       <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span>
-<a name="line-432"></a>								    <span class='conid'>Less</span>      <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span>
-<a name="line-433"></a>								    <span class='conid'>Greater</span>   <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span>
-<a name="line-434"></a>								    <span class='conid'>LessEq</span>    <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span>
-<a name="line-435"></a>								    <span class='conid'>GreaterEq</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span>
-<a name="line-436"></a>								    <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='varid'>error</span> <span class='str'>"compNumber: wrong arg"</span>
-<a name="line-437"></a>								  <span class='layout'>)</span> <span class='varid'>n'</span>
-<a name="line-438"></a>							    <span class='layout'>)</span>
-<a name="line-439"></a>						      <span class='layout'>)</span>
-<a name="line-440"></a>						      <span class='varop'>`guards`</span> <span class='varid'>this</span>
-<a name="line-441"></a>						    <span class='layout'>)</span>
-<a name="line-442"></a><span class='definition'>compNumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-443"></a>
-<a name="line-444"></a><a name="compBool"></a><span class='definition'>compBool</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-445"></a><span class='definition'>compBool</span> <span class='conid'>And</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-446"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>
-<a name="line-447"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
-<a name="line-448"></a>				       <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
-<a name="line-449"></a>				       <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>none</span>
-<a name="line-450"></a>				  <span class='layout'>)</span>
-<a name="line-451"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-452"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-453"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>
-<a name="line-454"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
-<a name="line-455"></a>				       <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
-<a name="line-456"></a>				       <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>none</span>
-<a name="line-457"></a>				  <span class='layout'>)</span>
-<a name="line-458"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-459"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-460"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
-<a name="line-461"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
-<a name="line-462"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>a2</span>
-<a name="line-463"></a>				  <span class='layout'>)</span>
-<a name="line-464"></a><span class='definition'>compBool</span> <span class='conid'>Or</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-465"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>
-<a name="line-466"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
-<a name="line-467"></a>                                       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>
-<a name="line-468"></a>				       <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
-<a name="line-469"></a>				  <span class='layout'>)</span>
-<a name="line-470"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-471"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-472"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>
-<a name="line-473"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
-<a name="line-474"></a>                                       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>
-<a name="line-475"></a>				       <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
-<a name="line-476"></a>				  <span class='layout'>)</span>
-<a name="line-477"></a>				  <span class='varop'>`mplus`</span>
-<a name="line-478"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-479"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
-<a name="line-480"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
-<a name="line-481"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'>&lt;+&gt;&gt;</span> <span class='varid'>a2</span>
-<a name="line-482"></a>				  <span class='layout'>)</span>
-<a name="line-483"></a><span class='definition'>compBool</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-484"></a>
-<a name="line-485"></a><a name="compPath"></a><span class='definition'>compPath</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
-<a name="line-486"></a><span class='definition'>compPath</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
-<a name="line-487"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-488"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>
-<a name="line-489"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>
-<a name="line-490"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varop'>.</span> <span class='varid'>cmp</span> <span class='varid'>op</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>xString</span> <span class='varid'>a1</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>xString</span> <span class='varid'>a2</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-491"></a>							      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-492"></a>							      <span class='varid'>eqs</span>
-<a name="line-493"></a>							    <span class='layout'>)</span>
-<a name="line-494"></a>				  <span class='layout'>)</span>
-<a name="line-495"></a>				  <span class='keyword'>where</span>
-<a name="line-496"></a>				  <span class='varid'>eqs</span>		<span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='varid'>equalNodeSet</span>
-<a name="line-497"></a>				  <span class='varid'>cmp</span> <span class='conid'>Eq</span>  <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
-<a name="line-498"></a>				  <span class='varid'>cmp</span> <span class='conid'>NEq</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>a</span> <span class='varid'>none</span> <span class='varid'>this</span>
-<a name="line-499"></a>				  <span class='varid'>cmp</span> <span class='keyword'>_</span> <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"compPath: wrong agruments"</span>
+<a name="line-376"></a>				  <span class='varid'>compPath</span>   <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='comment'>-- nodeset equality</span>
+<a name="line-377"></a>
+<a name="line-378"></a><span class='definition'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-379"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>And</span><span class='layout'>,</span> <span class='conid'>Or</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='varid'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='layout'>,</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varid'>el</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-380"></a>
+<a name="line-381"></a><span class='definition'>compGenExpr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-382"></a>
+<a name="line-383"></a><a name="compString"></a><span class='definition'>compString</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-384"></a><span class='definition'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
+<a name="line-385"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-386"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e2</span>
+<a name="line-387"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>
+<a name="line-388"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>s</span>
+<a name="line-389"></a>				  <span class='layout'>)</span>
+<a name="line-390"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-391"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-392"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e1</span>
+<a name="line-393"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>
+<a name="line-394"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>s</span>
+<a name="line-395"></a>				  <span class='layout'>)</span>
+<a name="line-396"></a>				  <span class='keyword'>where</span>
+<a name="line-397"></a>				  <span class='varid'>mkEq'</span> <span class='varid'>a'</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xString</span> <span class='varid'>a'</span>
+<a name="line-398"></a>							<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-399"></a>							<span class='varid'>isA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Eq</span>
+<a name="line-400"></a>							      <span class='keyword'>then</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>s'</span><span class='layout'>)</span>
+<a name="line-401"></a>							      <span class='keyword'>else</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='varid'>s'</span><span class='layout'>)</span>
+<a name="line-402"></a>							    <span class='layout'>)</span>
+<a name="line-403"></a>						      <span class='layout'>)</span>
+<a name="line-404"></a>						      <span class='varop'>`guards`</span> <span class='varid'>this</span>	<span class='comment'>-- just for type match</span>
+<a name="line-405"></a>						    <span class='layout'>)</span>
+<a name="line-406"></a><span class='definition'>compString</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-407"></a>
+<a name="line-408"></a><a name="compNumber"></a><span class='definition'>compNumber</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-409"></a><span class='definition'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
+<a name="line-410"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>,</span> <span class='conid'>LessEq</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='keyglyph'>]</span>
+<a name="line-411"></a>				<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-412"></a>				    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e2</span>
+<a name="line-413"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>
+<a name="line-414"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>n</span>
+<a name="line-415"></a>				  <span class='layout'>)</span>
+<a name="line-416"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-417"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-418"></a>				    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e1</span>
+<a name="line-419"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>
+<a name="line-420"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>n</span>
+<a name="line-421"></a>				  <span class='layout'>)</span>
+<a name="line-422"></a>				  <span class='keyword'>where</span>
+<a name="line-423"></a>				  <span class='varid'>mkEq'</span> <span class='varid'>a'</span> <span class='varid'>n'</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xNumber'</span> <span class='varid'>a'</span>
+<a name="line-424"></a>							<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-425"></a>							<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>op</span> <span class='keyword'>of</span>
+<a name="line-426"></a>								    <span class='conid'>Eq</span>        <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>
+<a name="line-427"></a>								    <span class='conid'>NEq</span>       <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span>
+<a name="line-428"></a>								    <span class='conid'>Less</span>      <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span>
+<a name="line-429"></a>								    <span class='conid'>Greater</span>   <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span>
+<a name="line-430"></a>								    <span class='conid'>LessEq</span>    <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span>
+<a name="line-431"></a>								    <span class='conid'>GreaterEq</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span>
+<a name="line-432"></a>								    <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='varid'>error</span> <span class='str'>"compNumber: wrong arg"</span>
+<a name="line-433"></a>								  <span class='layout'>)</span> <span class='varid'>n'</span>
+<a name="line-434"></a>							    <span class='layout'>)</span>
+<a name="line-435"></a>						      <span class='layout'>)</span>
+<a name="line-436"></a>						      <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-437"></a>						    <span class='layout'>)</span>
+<a name="line-438"></a><span class='definition'>compNumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-439"></a>
+<a name="line-440"></a><a name="compBool"></a><span class='definition'>compBool</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-441"></a><span class='definition'>compBool</span> <span class='conid'>And</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-442"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>
+<a name="line-443"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
+<a name="line-444"></a>				       <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
+<a name="line-445"></a>				       <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>none</span>
+<a name="line-446"></a>				  <span class='layout'>)</span>
+<a name="line-447"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-448"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-449"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>
+<a name="line-450"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
+<a name="line-451"></a>				       <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
+<a name="line-452"></a>				       <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>none</span>
+<a name="line-453"></a>				  <span class='layout'>)</span>
+<a name="line-454"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-455"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-456"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
+<a name="line-457"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
+<a name="line-458"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>a2</span>
+<a name="line-459"></a>				  <span class='layout'>)</span>
+<a name="line-460"></a><span class='definition'>compBool</span> <span class='conid'>Or</span> <span class='varid'>e1</span> <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-461"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>
+<a name="line-462"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
+<a name="line-463"></a>                                       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>
+<a name="line-464"></a>				       <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
+<a name="line-465"></a>				  <span class='layout'>)</span>
+<a name="line-466"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-467"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-468"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>
+<a name="line-469"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>
+<a name="line-470"></a>                                       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>
+<a name="line-471"></a>				       <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
+<a name="line-472"></a>				  <span class='layout'>)</span>
+<a name="line-473"></a>				  <span class='varop'>`mplus`</span>
+<a name="line-474"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-475"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>
+<a name="line-476"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>
+<a name="line-477"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'>&lt;+&gt;&gt;</span> <span class='varid'>a2</span>
+<a name="line-478"></a>				  <span class='layout'>)</span>
+<a name="line-479"></a><span class='definition'>compBool</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-480"></a>
+<a name="line-481"></a><a name="compPath"></a><span class='definition'>compPath</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-482"></a><span class='definition'>compPath</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
+<a name="line-483"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-484"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>
+<a name="line-485"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>
+<a name="line-486"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varop'>.</span> <span class='varid'>cmp</span> <span class='varid'>op</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>xString</span> <span class='varid'>a1</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>xString</span> <span class='varid'>a2</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-487"></a>							      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-488"></a>							      <span class='varid'>eqs</span>
+<a name="line-489"></a>							    <span class='layout'>)</span>
+<a name="line-490"></a>				  <span class='layout'>)</span>
+<a name="line-491"></a>				  <span class='keyword'>where</span>
+<a name="line-492"></a>				  <span class='varid'>eqs</span>		<span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='varid'>equalNodeSet</span>
+<a name="line-493"></a>				  <span class='varid'>cmp</span> <span class='conid'>Eq</span>  <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-494"></a>				  <span class='varid'>cmp</span> <span class='conid'>NEq</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>a</span> <span class='varid'>none</span> <span class='varid'>this</span>
+<a name="line-495"></a>				  <span class='varid'>cmp</span> <span class='keyword'>_</span> <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"compPath: wrong agruments"</span>
+<a name="line-496"></a>
+<a name="line-497"></a><span class='definition'>compPath</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
+<a name="line-498"></a>
+<a name="line-499"></a><span class='comment'>-- ----------------------------------------</span>
 <a name="line-500"></a>
-<a name="line-501"></a><span class='definition'>compPath</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>
-<a name="line-502"></a>
-<a name="line-503"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-504"></a>
-<a name="line-505"></a><a name="toNumber"></a><span class='definition'>toNumber</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPNumber</span>
-<a name="line-506"></a><span class='definition'>toNumber</span> <span class='varid'>s</span>		<span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='layout'>(</span> <span class='conid'>XPVNumber</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span> <span class='keyword'>in</span> <span class='varid'>v</span>
-<a name="line-507"></a>
-<a name="line-508"></a><a name="equalNodeSet"></a><span class='definition'>equalNodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-509"></a><span class='definition'>equalNodeSet</span> <span class='varid'>s1</span> <span class='varid'>s2</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>x</span> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span><span class='keyglyph'>]</span>
-<a name="line-510"></a>
-<a name="line-511"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-501"></a><a name="toNumber"></a><span class='definition'>toNumber</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPNumber</span>
+<a name="line-502"></a><span class='definition'>toNumber</span> <span class='varid'>s</span>		<span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='layout'>(</span> <span class='conid'>XPVNumber</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span> <span class='keyword'>in</span> <span class='varid'>v</span>
+<a name="line-503"></a>
+<a name="line-504"></a><a name="equalNodeSet"></a><span class='definition'>equalNodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-505"></a><span class='definition'>equalNodeSet</span> <span class='varid'>s1</span> <span class='varid'>s2</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>x</span> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span><span class='keyglyph'>]</span>
+<a name="line-506"></a>
+<a name="line-507"></a><span class='comment'>-- ----------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html
@@ -10,44 +10,44 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.Arrow.XmlArrow
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-9 Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
 <a name="line-9"></a>   Stability  : experimental
 <a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: XmlArrow.hs,v 1.34 2006/11/02 16:43:39 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>   Basic arrows for processing XML documents
-<a name="line-14"></a>
-<a name="line-15"></a>   All arrows use IO and a global state for options, errorhandling, ...
-<a name="line-16"></a>
-<a name="line-17"></a>-}</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-20"></a>
-<a name="line-21"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-22"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span> <span class='layout'>)</span>
-<a name="line-23"></a><span class='keyword'>where</span>
-<a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-26"></a>
-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>			<span class='comment'>-- classes</span>
-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
-<a name="line-31"></a>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>		<span class='comment'>-- arrow types</span>
-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>
-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>
-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>
-<a name="line-36"></a>
-<a name="line-37"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-38"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
-<a name="line-39"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>
-<a name="line-40"></a>    <span class='layout'>)</span>
-<a name="line-41"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>
-<a name="line-42"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span> <span class='keyword'>as</span> <span class='conid'>XS</span>
+<a name="line-11"></a>
+<a name="line-12"></a>   Basic arrows for processing XML documents
+<a name="line-13"></a>
+<a name="line-14"></a>   All arrows use IO and a global state for options, errorhandling, ...
+<a name="line-15"></a>
+<a name="line-16"></a>-}</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span> <span class='layout'>)</span>
+<a name="line-22"></a><span class='keyword'>where</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>			<span class='comment'>-- classes</span>
+<a name="line-25"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-26"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
+<a name="line-27"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>		<span class='comment'>-- arrow types</span>
+<a name="line-30"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>
+<a name="line-31"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>
+<a name="line-32"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-37"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>	<span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>
+<a name="line-38"></a>						<span class='layout'>)</span>
+<a name="line-39"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>
+<a name="line-40"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span> <span class='keyword'>as</span> <span class='conid'>XS</span>
+<a name="line-41"></a>
+<a name="line-42"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-43"></a>
 <a name="line-44"></a><span class='comment'>{- | Arrows for processing 'Text.XML.HXT.DOM.TypeDefs.XmlTree's
 <a name="line-45"></a>
@@ -245,21 +245,21 @@
 <a name="line-237"></a>    <span class='varid'>mkqelem</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
 <a name="line-238"></a>    <span class='varid'>mkqelem</span>  <span class='varid'>n</span> <span class='varid'>afs</span> <span class='varid'>cfs</span>	<span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>afs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>cfs</span><span class='layout'>)</span>
 <a name="line-239"></a>
-<a name="line-240"></a>    <span class='comment'>-- | convenient arrow for element construction with strings instead of qualified names as tagnames, see also 'mkElement' and 'mkelem'</span>
+<a name="line-240"></a>    <span class='comment'>-- | convenient arrow for element construction with strings instead of qualified names as element names, see also 'mkElement' and 'mkelem'</span>
 <a name="line-241"></a>    <span class='varid'>mkelem</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-242"></a>    <span class='varid'>mkelem</span>  <span class='varid'>n</span> <span class='varid'>afs</span> <span class='varid'>cfs</span>	<span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>afs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>cfs</span><span class='layout'>)</span>
+<a name="line-242"></a>    <span class='varid'>mkelem</span>  <span class='varid'>n</span> <span class='varid'>afs</span> <span class='varid'>cfs</span>	<span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>afs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>cfs</span><span class='layout'>)</span>
 <a name="line-243"></a>
 <a name="line-244"></a>    <span class='comment'>-- | convenient arrow for element constrution with attributes but without content, simple variant of 'mkelem' and 'mkElement'</span>
 <a name="line-245"></a>    <span class='varid'>aelem</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>                  <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-246"></a>    <span class='varid'>aelem</span> <span class='varid'>n</span> <span class='varid'>afs</span>		<span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varid'>afs</span> <span class='varop'>&gt;.</span> <span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='conid'>[]</span>
+<a name="line-246"></a>    <span class='varid'>aelem</span> <span class='varid'>n</span> <span class='varid'>afs</span>		<span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varid'>afs</span> <span class='varop'>&gt;.</span> <span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='conid'>[]</span>
 <a name="line-247"></a>
 <a name="line-248"></a>    <span class='comment'>-- | convenient arrow for simple element constrution without attributes, simple variant of 'mkelem' and 'mkElement'</span>
 <a name="line-249"></a>    <span class='varid'>selem</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>                  <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-250"></a>    <span class='varid'>selem</span> <span class='varid'>n</span> <span class='varid'>cfs</span>		<span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varid'>cfs</span> <span class='varop'>&gt;.</span>         <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-250"></a>    <span class='varid'>selem</span> <span class='varid'>n</span> <span class='varid'>cfs</span>		<span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varid'>cfs</span> <span class='varop'>&gt;.</span>         <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</span>
 <a name="line-251"></a>
 <a name="line-252"></a>    <span class='comment'>-- | convenient arrow for constrution of empty elements without attributes, simple variant of 'mkelem' and 'mkElement'</span>
 <a name="line-253"></a>    <span class='varid'>eelem</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>                                   <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-254"></a>    <span class='varid'>eelem</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span>      <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-254"></a>    <span class='varid'>eelem</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span>      <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span>
 <a name="line-255"></a>
 <a name="line-256"></a>    <span class='comment'>-- | construction of an element node with name \"\/\" for document roots</span>
 <a name="line-257"></a>    <span class='varid'>root</span>		<span class='keyglyph'>::</span>           <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
@@ -271,7 +271,7 @@
 <a name="line-263"></a>
 <a name="line-264"></a>    <span class='comment'>-- | convenient arrow for attribute constrution, simple variant of 'mkAttr'</span>
 <a name="line-265"></a>    <span class='varid'>attr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-266"></a>    <span class='varid'>attr</span>		<span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='varop'>.</span> <span class='varid'>mkSNsName</span>
+<a name="line-266"></a>    <span class='varid'>attr</span>		<span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='varop'>.</span> <span class='varid'>mkName</span>
 <a name="line-267"></a>
 <a name="line-268"></a>    <span class='comment'>-- constant arrows (ignoring the input) for tree construction ------------------------------</span>
 <a name="line-269"></a>
@@ -305,7 +305,7 @@
 <a name="line-297"></a>
 <a name="line-298"></a>    <span class='comment'>-- | constant arrow for simple processing instructions, see 'mkPi'</span>
 <a name="line-299"></a>    <span class='varid'>spi</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-300"></a>    <span class='varid'>spi</span> <span class='varid'>piName</span> <span class='varid'>piCont</span>	<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkPi</span>   <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>piName</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>piCont</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-300"></a>    <span class='varid'>spi</span> <span class='varid'>piName</span> <span class='varid'>piCont</span>	<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkPi</span>   <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>piName</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>piCont</span><span class='keyglyph'>]</span><span class='layout'>)</span>
 <a name="line-301"></a>
 <a name="line-302"></a>    <span class='comment'>-- | constant arrow for attribute nodes, attribute name is a qualified name and value is a text,</span>
 <a name="line-303"></a>    <span class='comment'>-- | see also 'mkAttr', 'qattr', 'attr'</span>
@@ -315,7 +315,7 @@
 <a name="line-307"></a>    <span class='comment'>-- | constant arrow for attribute nodes, attribute name and value are</span>
 <a name="line-308"></a>    <span class='comment'>-- | given by parameters, see 'mkAttr'</span>
 <a name="line-309"></a>    <span class='varid'>sattr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
-<a name="line-310"></a>    <span class='varid'>sattr</span> <span class='varid'>an</span> <span class='varid'>av</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>an</span><span class='layout'>)</span>     <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>av</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-310"></a>    <span class='varid'>sattr</span> <span class='varid'>an</span> <span class='varid'>av</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>an</span><span class='layout'>)</span>     <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>av</span><span class='keyglyph'>]</span><span class='layout'>)</span>
 <a name="line-311"></a>
 <a name="line-312"></a>    <span class='comment'>-- selector arrows --------------------------------------------------</span>
 <a name="line-313"></a>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html
--- a/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html
@@ -109,846 +109,855 @@
 <a name="line-101"></a>      <span class='varid'>withTraceLevel</span><span class='layout'>,</span>
 <a name="line-102"></a>      <span class='varid'>trace</span><span class='layout'>,</span>
 <a name="line-103"></a>      <span class='varid'>traceMsg</span><span class='layout'>,</span>
-<a name="line-104"></a>      <span class='varid'>traceString</span><span class='layout'>,</span>
-<a name="line-105"></a>      <span class='varid'>traceSource</span><span class='layout'>,</span>
-<a name="line-106"></a>      <span class='varid'>traceTree</span><span class='layout'>,</span>
-<a name="line-107"></a>      <span class='varid'>traceDoc</span><span class='layout'>,</span>
-<a name="line-108"></a>      <span class='varid'>traceState</span><span class='layout'>,</span>
-<a name="line-109"></a>
-<a name="line-110"></a>      <span class='comment'>-- * URI Manipulation</span>
-<a name="line-111"></a>      <span class='varid'>expandURIString</span><span class='layout'>,</span>
-<a name="line-112"></a>      <span class='varid'>expandURI</span><span class='layout'>,</span>
-<a name="line-113"></a>      <span class='varid'>mkAbsURI</span><span class='layout'>,</span>
-<a name="line-114"></a>
-<a name="line-115"></a>      <span class='varid'>getFragmentFromURI</span><span class='layout'>,</span>
-<a name="line-116"></a>      <span class='varid'>getPathFromURI</span><span class='layout'>,</span>
-<a name="line-117"></a>      <span class='varid'>getPortFromURI</span><span class='layout'>,</span>
-<a name="line-118"></a>      <span class='varid'>getQueryFromURI</span><span class='layout'>,</span>
-<a name="line-119"></a>      <span class='varid'>getRegNameFromURI</span><span class='layout'>,</span>
-<a name="line-120"></a>      <span class='varid'>getSchemeFromURI</span><span class='layout'>,</span>
-<a name="line-121"></a>      <span class='varid'>getUserInfoFromURI</span><span class='layout'>,</span>
-<a name="line-122"></a>
-<a name="line-123"></a>      <span class='comment'>-- * Mime Type Handling</span>
-<a name="line-124"></a>      <span class='varid'>setMimeTypeTable</span><span class='layout'>,</span>
-<a name="line-125"></a>      <span class='varid'>setMimeTypeTableFromFile</span>
-<a name="line-126"></a>      <span class='layout'>)</span>
-<a name="line-127"></a><span class='keyword'>where</span>
-<a name="line-128"></a>
-<a name="line-129"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
-<a name="line-130"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-131"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
-<a name="line-132"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
-<a name="line-133"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>
-<a name="line-134"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>
-<a name="line-135"></a>
-<a name="line-136"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>
-<a name="line-137"></a>
-<a name="line-138"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-139"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-140"></a>
-<a name="line-141"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
-<a name="line-142"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>
-<a name="line-143"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-144"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
-<a name="line-145"></a>    <span class='layout'>)</span>
-<a name="line-146"></a>
-<a name="line-147"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-148"></a>
-<a name="line-149"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
-<a name="line-150"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>
-<a name="line-151"></a>    <span class='layout'>,</span> <span class='varid'>escapeURIChar</span>
-<a name="line-152"></a>    <span class='layout'>,</span> <span class='varid'>isUnescapedInURI</span>
-<a name="line-153"></a>    <span class='layout'>,</span> <span class='varid'>nonStrictRelativeTo</span>
-<a name="line-154"></a>    <span class='layout'>,</span> <span class='varid'>parseURIReference</span>
-<a name="line-155"></a>    <span class='layout'>,</span> <span class='varid'>uriAuthority</span>
-<a name="line-156"></a>    <span class='layout'>,</span> <span class='varid'>uriFragment</span>
-<a name="line-157"></a>    <span class='layout'>,</span> <span class='varid'>uriPath</span>
-<a name="line-158"></a>    <span class='layout'>,</span> <span class='varid'>uriPort</span>
-<a name="line-159"></a>    <span class='layout'>,</span> <span class='varid'>uriQuery</span>
-<a name="line-160"></a>    <span class='layout'>,</span> <span class='varid'>uriRegName</span>
-<a name="line-161"></a>    <span class='layout'>,</span> <span class='varid'>uriScheme</span>
-<a name="line-162"></a>    <span class='layout'>,</span> <span class='varid'>uriUserInfo</span>
-<a name="line-163"></a>    <span class='layout'>)</span>
-<a name="line-164"></a>
-<a name="line-165"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
-<a name="line-166"></a>    <span class='layout'>(</span> <span class='varid'>hPutStrLn</span>
-<a name="line-167"></a>    <span class='layout'>,</span> <span class='varid'>hFlush</span>
-<a name="line-168"></a>    <span class='layout'>,</span> <span class='varid'>stderr</span>
-<a name="line-169"></a>    <span class='layout'>)</span>
-<a name="line-170"></a>
-<a name="line-171"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>
-<a name="line-172"></a>    <span class='layout'>(</span> <span class='varid'>getCurrentDirectory</span>
-<a name="line-173"></a>    <span class='layout'>)</span>
-<a name="line-174"></a>
-<a name="line-175"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-176"></a><span class='comment'>{- $datatypes -}</span>
-<a name="line-177"></a>
-<a name="line-178"></a>
-<a name="line-179"></a><span class='comment'>-- |</span>
-<a name="line-180"></a><span class='comment'>-- predefined system state data type with all components for the</span>
-<a name="line-181"></a><span class='comment'>-- system functions, like trace, error handling, ...</span>
-<a name="line-182"></a>
-<a name="line-183"></a><a name="XIOSysState"></a><span class='keyword'>data</span> <span class='conid'>XIOSysState</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOSys</span>  <span class='layout'>{</span> <span class='varid'>xio_trace</span>			<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Int</span>
-<a name="line-184"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Int</span>
-<a name="line-185"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorModule</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>
-<a name="line-186"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span>		<span class='keyglyph'>::</span>   <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span>
-<a name="line-187"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Bool</span>
-<a name="line-188"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>XmlTrees</span>
-<a name="line-189"></a>				  <span class='layout'>,</span> <span class='varid'>xio_baseURI</span>			<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>
-<a name="line-190"></a>				  <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>
-<a name="line-191"></a>				  <span class='layout'>,</span> <span class='varid'>xio_attrList</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
-<a name="line-192"></a>				  <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span>		<span class='keyglyph'>::</span>   <span class='conid'>MimeTypeTable</span>
-<a name="line-193"></a>				  <span class='layout'>}</span>
-<a name="line-194"></a>
-<a name="line-195"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>XIOSysState</span> <span class='keyword'>where</span>
-<a name="line-196"></a>    <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XIOSys</span> <span class='varid'>tr</span> <span class='varid'>es</span> <span class='varid'>em</span> <span class='sel'>_emh</span> <span class='varid'>emc</span> <span class='varid'>eml</span> <span class='varid'>bu</span> <span class='varid'>du</span> <span class='varid'>al</span> <span class='sel'>_mt</span><span class='layout'>)</span>
-<a name="line-197"></a>	<span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>tr</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>es</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>em</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>emc</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>eml</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>bu</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>du</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>al</span>
-<a name="line-198"></a>
-<a name="line-199"></a><span class='comment'>-- |</span>
-<a name="line-200"></a><span class='comment'>-- state datatype consists of a system state and a user state</span>
-<a name="line-201"></a><span class='comment'>-- the user state is not fixed</span>
-<a name="line-202"></a>
-<a name="line-203"></a><a name="XIOState"></a><span class='keyword'>data</span> <span class='conid'>XIOState</span> <span class='varid'>us</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>XIOSysState</span>
-<a name="line-204"></a>				   <span class='layout'>,</span> <span class='varid'>xio_userState</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='varid'>us</span>
-<a name="line-205"></a>				   <span class='layout'>}</span>
-<a name="line-206"></a>
-<a name="line-207"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NFData</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyword'>where</span>
-<a name="line-208"></a>    <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>sys</span> <span class='varid'>usr</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>sys</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>usr</span>
-<a name="line-209"></a>
-<a name="line-210"></a><span class='comment'>-- |</span>
-<a name="line-211"></a><span class='comment'>-- The arrow type for stateful arrows</span>
-<a name="line-212"></a>
-<a name="line-213"></a><a name="IOStateArrow"></a><span class='keyword'>type</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-214"></a>
-<a name="line-215"></a><span class='comment'>-- |</span>
-<a name="line-216"></a><span class='comment'>-- The arrow for stateful arrows with no user defined state</span>
-<a name="line-217"></a>
-<a name="line-218"></a><a name="IOSArrow"></a><span class='keyword'>type</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>()</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-219"></a>
-<a name="line-220"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-221"></a>
-<a name="line-222"></a>
-<a name="line-223"></a><span class='comment'>-- | the default global state, used as initial state when running an 'IOSArrow' with 'runIOSLA' or</span>
-<a name="line-224"></a><span class='comment'>-- 'runX'</span>
-<a name="line-225"></a>
-<a name="line-226"></a><a name="initialState"></a><span class='definition'>initialState</span>	<span class='keyglyph'>::</span> <span class='varid'>us</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOState</span> <span class='varid'>us</span>
-<a name="line-227"></a><span class='definition'>initialState</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> 	<span class='keyglyph'>=</span> <span class='varid'>initialSysState</span>
-<a name="line-228"></a>			   <span class='layout'>,</span> <span class='varid'>xio_userState</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>
-<a name="line-229"></a>			   <span class='layout'>}</span>
-<a name="line-230"></a>
-<a name="line-231"></a><a name="initialSysState"></a><span class='definition'>initialSysState</span>	<span class='keyglyph'>::</span> <span class='conid'>XIOSysState</span>
-<a name="line-232"></a><span class='definition'>initialSysState</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOSys</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span>		<span class='keyglyph'>=</span> <span class='num'>0</span>
-<a name="line-233"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span>	<span class='keyglyph'>=</span> <span class='varid'>c_ok</span>
-<a name="line-234"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorModule</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-235"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span>	<span class='keyglyph'>=</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span>
-<a name="line-236"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-237"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-238"></a>			 <span class='layout'>,</span> <span class='varid'>xio_baseURI</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-239"></a>			 <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-240"></a>			 <span class='layout'>,</span> <span class='varid'>xio_attrList</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-241"></a>			 <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span>	<span class='keyglyph'>=</span> <span class='varid'>defaultMimeTypeTable</span>
-<a name="line-242"></a>			 <span class='layout'>}</span>
-<a name="line-243"></a>
-<a name="line-244"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-245"></a>
-<a name="line-246"></a><span class='comment'>-- |</span>
-<a name="line-247"></a><span class='comment'>-- apply an 'IOSArrow' to an empty root node with 'initialState' () as initial state</span>
-<a name="line-248"></a><span class='comment'>--</span>
-<a name="line-249"></a><span class='comment'>-- the main entry point for running a state arrow with IO</span>
-<a name="line-250"></a><span class='comment'>--</span>
-<a name="line-251"></a><span class='comment'>-- when running @ runX f@ an empty XML root node is applied to @f@.</span>
-<a name="line-252"></a><span class='comment'>-- usually @f@ will start with a constant arrow (ignoring the input), e.g. a 'Text.XML.HXT.Arrow.ReadDocument.readDocument' arrow.</span>
-<a name="line-253"></a><span class='comment'>--</span>
-<a name="line-254"></a><span class='comment'>-- for usage see examples with 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'</span>
-<a name="line-255"></a><span class='comment'>--</span>
-<a name="line-256"></a><span class='comment'>-- if input has to be feed into the arrow use 'Control.Arrow.IOStateListArrow.runIOSLA' like in @ runIOSLA f emptyX inputDoc @</span>
-<a name="line-257"></a>
-<a name="line-258"></a><a name="runX"></a><span class='definition'>runX</span>		<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
-<a name="line-259"></a><span class='definition'>runX</span>		<span class='keyglyph'>=</span> <span class='varid'>runXIOState</span> <span class='layout'>(</span><span class='varid'>initialState</span> <span class='conid'>()</span><span class='layout'>)</span>
-<a name="line-260"></a>
-<a name="line-261"></a><a name="runXIOState"></a><span class='definition'>runXIOState</span>	<span class='keyglyph'>::</span> <span class='conid'>XIOState</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
-<a name="line-262"></a><span class='definition'>runXIOState</span> <span class='varid'>s0</span> <span class='varid'>f</span>
-<a name="line-263"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-264"></a>      <span class='layout'>(</span><span class='sel'>_finalState</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>emptyRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>s0</span> <span class='varid'>undefined</span>
-<a name="line-265"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
-<a name="line-266"></a>    <span class='keyword'>where</span>
-<a name="line-267"></a>    <span class='varid'>emptyRoot</span>    <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
-<a name="line-268"></a>
-<a name="line-269"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-270"></a>
-<a name="line-271"></a><span class='comment'>{- user state -}</span>
-<a name="line-272"></a>
-<a name="line-273"></a><span class='comment'>-- | read the user defined part of the state</span>
-<a name="line-274"></a>
-<a name="line-275"></a><a name="getUserState"></a><span class='definition'>getUserState</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>s</span>
-<a name="line-276"></a><span class='definition'>getUserState</span>
-<a name="line-277"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-278"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>xio_userState</span> <span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-279"></a>
-<a name="line-280"></a><span class='comment'>-- | change the user defined part of the state</span>
-<a name="line-281"></a>
-<a name="line-282"></a><a name="changeUserState"></a><span class='definition'>changeUserState</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-283"></a><span class='definition'>changeUserState</span> <span class='varid'>cf</span>
-<a name="line-284"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-285"></a>      <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>cf</span> <span class='varid'>v</span> <span class='layout'>(</span><span class='varid'>xio_userState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-286"></a>      <span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>v</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-287"></a>
-<a name="line-288"></a><span class='comment'>-- | set the user defined part of the state</span>
-<a name="line-289"></a>
-<a name="line-290"></a><a name="setUserState"></a><span class='definition'>setUserState</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>s</span>
-<a name="line-291"></a><span class='definition'>setUserState</span>
-<a name="line-292"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>const</span>
-<a name="line-293"></a>
-<a name="line-294"></a><span class='comment'>-- | extend user state</span>
-<a name="line-295"></a><span class='comment'>--</span>
-<a name="line-296"></a><span class='comment'>-- Run an arrow with an extended user state component, The old component</span>
-<a name="line-297"></a><span class='comment'>-- is stored together with a new one in a pair, the arrow is executed with this</span>
-<a name="line-298"></a><span class='comment'>-- extended state, and the augmented state component is removed form the state</span>
-<a name="line-299"></a><span class='comment'>-- when the arrow has finished its execution</span>
-<a name="line-300"></a>
-<a name="line-301"></a><a name="withExtendedUserState"></a><span class='definition'>withExtendedUserState</span>	<span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s0</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-302"></a><span class='definition'>withExtendedUserState</span> <span class='varid'>initS1</span> <span class='varid'>f</span>
-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s0</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-304"></a>      <span class='keyword'>do</span>
-<a name="line-305"></a>      <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>finalS</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='varid'>f</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span>          <span class='varid'>xio_sysState</span>  <span class='varid'>s0</span>
-<a name="line-306"></a>					      <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>initS1</span><span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='varid'>s0</span><span class='layout'>)</span>
-<a name="line-307"></a>					      <span class='layout'>}</span>
-<a name="line-308"></a>				   <span class='layout'>)</span> <span class='varid'>x</span>
-<a name="line-309"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span>      <span class='varid'>xio_sysState</span>  <span class='varid'>finalS</span>
-<a name="line-310"></a>			<span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>snd</span> <span class='layout'>(</span><span class='varid'>xio_userState</span> <span class='varid'>finalS</span><span class='layout'>)</span>
-<a name="line-311"></a>			<span class='layout'>}</span>
-<a name="line-312"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>
-<a name="line-313"></a>	     <span class='layout'>)</span>
-<a name="line-314"></a>
-<a name="line-315"></a><span class='comment'>-- | change the type of user state</span>
-<a name="line-316"></a><span class='comment'>--</span>
-<a name="line-317"></a><span class='comment'>-- This conversion is useful, when running a state arrow with another</span>
-<a name="line-318"></a><span class='comment'>-- structure of the user state, e.g. with () when executing some IO arrows</span>
-<a name="line-319"></a>
-<a name="line-320"></a><a name="withOtherUserState"></a><span class='definition'>withOtherUserState</span>	<span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-321"></a><span class='definition'>withOtherUserState</span> <span class='varid'>s1</span> <span class='varid'>f</span>
-<a name="line-322"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-323"></a>      <span class='keyword'>do</span>
-<a name="line-324"></a>      <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='varid'>f</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span> <span class='varid'>s</span>
-<a name="line-325"></a>					 <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>s1</span>
-<a name="line-326"></a>					 <span class='layout'>}</span>
-<a name="line-327"></a>			      <span class='layout'>)</span> <span class='varid'>x</span>
-<a name="line-328"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span>  <span class='varid'>s'</span>
-<a name="line-329"></a>			<span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_userState</span> <span class='varid'>s</span>
-<a name="line-330"></a>			<span class='layout'>}</span>
-<a name="line-331"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>
-<a name="line-332"></a>	     <span class='layout'>)</span>
-<a name="line-333"></a>
-<a name="line-334"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-335"></a>
-<a name="line-336"></a><span class='comment'>{- $system state params -}</span>
-<a name="line-337"></a>
-<a name="line-338"></a><a name="getSysParam"></a><span class='definition'>getSysParam</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XIOSysState</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-339"></a><span class='definition'>getSysParam</span> <span class='varid'>f</span>
-<a name="line-340"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='sel'>_x</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-341"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>xio_sysState</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-342"></a>
-<a name="line-343"></a><a name="changeSysParam"></a><span class='definition'>changeSysParam</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOSysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOSysState</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-344"></a><span class='definition'>changeSysParam</span> <span class='varid'>cf</span>
-<a name="line-345"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-346"></a>	<span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>changeSysState</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-347"></a>	<span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>v</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-348"></a>      <span class='layout'>)</span>
-<a name="line-349"></a>    <span class='keyword'>where</span>
-<a name="line-350"></a>    <span class='varid'>changeSysState</span> <span class='varid'>css</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>css</span> <span class='layout'>(</span><span class='varid'>xio_sysState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-351"></a>
-<a name="line-352"></a><span class='comment'>-- | store a single XML tree in global state under a given attribute name</span>
-<a name="line-353"></a>
-<a name="line-354"></a><a name="setParam"></a><span class='definition'>setParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-355"></a><span class='definition'>setParam</span> <span class='varid'>n</span>
-<a name="line-356"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>setParamList</span> <span class='varid'>n</span>
-<a name="line-357"></a>
-<a name="line-358"></a><span class='comment'>-- | store a list of XML trees in global system state under a given attribute name</span>
-<a name="line-359"></a>
-<a name="line-360"></a><a name="setParamList"></a><span class='definition'>setParamList</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
-<a name="line-361"></a><span class='definition'>setParamList</span> <span class='varid'>n</span>
-<a name="line-362"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>addE</span>
-<a name="line-363"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-364"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>
-<a name="line-365"></a>    <span class='keyword'>where</span>
-<a name="line-366"></a>    <span class='varid'>addE</span> <span class='varid'>x</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='varid'>addEntry</span> <span class='varid'>n</span> <span class='varid'>x</span> <span class='layout'>(</span><span class='varid'>xio_attrList</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-367"></a>
-<a name="line-368"></a><span class='comment'>-- | remove an entry in global state, arrow input remains unchanged</span>
-<a name="line-369"></a>
-<a name="line-370"></a><a name="unsetParam"></a><span class='definition'>unsetParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-371"></a><span class='definition'>unsetParam</span> <span class='varid'>n</span>
-<a name="line-372"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>delE</span>
-<a name="line-373"></a>    <span class='keyword'>where</span>
-<a name="line-374"></a>    <span class='varid'>delE</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='varid'>delEntry</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>xio_attrList</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
-<a name="line-375"></a>
-<a name="line-376"></a><span class='comment'>-- | read an attribute value from global state</span>
-<a name="line-377"></a>
-<a name="line-378"></a><a name="getParam"></a><span class='definition'>getParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
-<a name="line-379"></a><span class='definition'>getParam</span> <span class='varid'>n</span>
-<a name="line-380"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>
-<a name="line-381"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-382"></a>      <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-383"></a>
-<a name="line-384"></a><span class='comment'>-- | read all attributes from global state</span>
-<a name="line-385"></a>
-<a name="line-386"></a><a name="getAllParams"></a><span class='definition'>getAllParams</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
-<a name="line-387"></a><span class='definition'>getAllParams</span>
-<a name="line-388"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_attrList</span>
-<a name="line-389"></a>
-<a name="line-390"></a><span class='comment'>-- | read all attributes from global state</span>
-<a name="line-391"></a><span class='comment'>-- and convert the values to strings</span>
-<a name="line-392"></a>
-<a name="line-393"></a><a name="getAllParamsString"></a><span class='definition'>getAllParamsString</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-394"></a><span class='definition'>getAllParamsString</span>
-<a name="line-395"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>
-<a name="line-396"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-397"></a>      <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
-<a name="line-398"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-399"></a>	      <span class='varid'>second</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>unlistA</span><span class='layout'>)</span>
-<a name="line-400"></a>	    <span class='layout'>)</span>
-<a name="line-401"></a>
-<a name="line-402"></a><a name="setParamString"></a><span class='definition'>setParamString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-403"></a><span class='definition'>setParamString</span> <span class='varid'>n</span> <span class='varid'>v</span>
-<a name="line-404"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>v</span>
-<a name="line-405"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-406"></a>		<span class='varid'>setParam</span> <span class='varid'>n</span>
-<a name="line-407"></a>	      <span class='layout'>)</span>
-<a name="line-408"></a>
-<a name="line-409"></a><span class='comment'>-- | read a string value from global state,</span>
-<a name="line-410"></a><span class='comment'>-- if parameter not set \"\" is returned</span>
-<a name="line-411"></a>
-<a name="line-412"></a><a name="getParamString"></a><span class='definition'>getParamString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
-<a name="line-413"></a><span class='definition'>getParamString</span> <span class='varid'>n</span>
-<a name="line-414"></a>    <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getParam</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-415"></a>
-<a name="line-416"></a><span class='comment'>-- | store an int value in global state</span>
-<a name="line-417"></a>
-<a name="line-418"></a><a name="setParamInt"></a><span class='definition'>setParamInt</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-419"></a><span class='definition'>setParamInt</span> <span class='varid'>n</span> <span class='varid'>v</span>
-<a name="line-420"></a>    <span class='keyglyph'>=</span> <span class='varid'>setParamString</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>v</span><span class='layout'>)</span>
-<a name="line-421"></a>
-<a name="line-422"></a><span class='comment'>-- | read an int value from global state</span>
-<a name="line-423"></a><span class='comment'>-- </span>
-<a name="line-424"></a><span class='comment'>-- &gt; getParamInt 0 myIntAttr</span>
-<a name="line-425"></a>
-<a name="line-426"></a><a name="getParamInt"></a><span class='definition'>getParamInt</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>
-<a name="line-427"></a><span class='definition'>getParamInt</span> <span class='varid'>def</span> <span class='varid'>n</span>
-<a name="line-428"></a>    <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>n</span>
-<a name="line-429"></a>      <span class='varop'>&gt;&gt;^</span>
-<a name="line-430"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='varid'>def</span> <span class='keyword'>else</span> <span class='varid'>read</span> <span class='varid'>x</span><span class='layout'>)</span>
-<a name="line-431"></a>
-<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-433"></a>
-<a name="line-434"></a><span class='comment'>-- | reset global error variable</span>
-<a name="line-435"></a>
-<a name="line-436"></a><a name="changeErrorStatus"></a><span class='definition'>changeErrorStatus</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>
-<a name="line-437"></a><span class='definition'>changeErrorStatus</span> <span class='varid'>f</span>
-<a name="line-438"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorStatus</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>l</span> <span class='layout'>(</span><span class='varid'>xio_errorStatus</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span><span class='layout'>)</span>
-<a name="line-439"></a>
-<a name="line-440"></a><a name="clearErrStatus"></a><span class='definition'>clearErrStatus</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-441"></a><span class='definition'>clearErrStatus</span>
-<a name="line-442"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='num'>0</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>min</span><span class='layout'>)</span>
-<a name="line-443"></a>
-<a name="line-444"></a><span class='comment'>-- | set global error variable</span>
-<a name="line-445"></a>
-<a name="line-446"></a><a name="setErrStatus"></a><span class='definition'>setErrStatus</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>
-<a name="line-447"></a><span class='definition'>setErrStatus</span>
-<a name="line-448"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>max</span>
-<a name="line-449"></a>
-<a name="line-450"></a><span class='comment'>-- | read current global error status</span>
-<a name="line-451"></a>
-<a name="line-452"></a><a name="getErrStatus"></a><span class='definition'>getErrStatus</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>
-<a name="line-453"></a><span class='definition'>getErrStatus</span>
-<a name="line-454"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_errorStatus</span>
-<a name="line-455"></a>
-<a name="line-456"></a><span class='comment'>-- | raise the global error status level to that of the input tree</span>
-<a name="line-457"></a>
-<a name="line-458"></a><a name="setErrMsgStatus"></a><span class='definition'>setErrMsgStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-459"></a><span class='definition'>setErrMsgStatus</span>
-<a name="line-460"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span>
-<a name="line-461"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-462"></a>		<span class='varid'>setErrStatus</span>
-<a name="line-463"></a>	      <span class='layout'>)</span>
-<a name="line-464"></a>
-<a name="line-465"></a><span class='comment'>-- | set the error message handler and the flag for collecting the errors</span>
-<a name="line-466"></a>
-<a name="line-467"></a><a name="setErrorMsgHandler"></a><span class='definition'>setErrorMsgHandler</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-468"></a><span class='definition'>setErrorMsgHandler</span> <span class='varid'>c</span> <span class='varid'>f</span>
-<a name="line-469"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>
-<a name="line-470"></a>    <span class='keyword'>where</span>
-<a name="line-471"></a>    <span class='varid'>cf</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgHandler</span> <span class='keyglyph'>=</span> <span class='varid'>f</span>
-<a name="line-472"></a>	       <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='layout'>}</span>
-<a name="line-473"></a>
-<a name="line-474"></a><span class='comment'>-- | error message handler for output to stderr</span>
-<a name="line-475"></a>		  
-<a name="line-476"></a><a name="sysErrorMsg"></a><span class='definition'>sysErrorMsg</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-477"></a><span class='definition'>sysErrorMsg</span>
-<a name="line-478"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getErrorMsg</span>
-<a name="line-479"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-480"></a>		<span class='varid'>arr</span> <span class='varid'>formatErrorMsg</span>
-<a name="line-481"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-482"></a>		<span class='layout'>(</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-483"></a>		  <span class='keyword'>do</span>
-<a name="line-484"></a>		  <span class='layout'>(</span><span class='varid'>xio_errorMsgHandler</span> <span class='varop'>.</span> <span class='varid'>xio_sysState</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>e</span>
-<a name="line-485"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>undefined</span><span class='layout'>)</span>
-<a name="line-486"></a>		<span class='layout'>)</span>
-<a name="line-487"></a>	      <span class='layout'>)</span>
-<a name="line-488"></a>    <span class='keyword'>where</span>
-<a name="line-489"></a>    <span class='varid'>formatErrorMsg</span> <span class='layout'>(</span><span class='varid'>level</span><span class='layout'>,</span> <span class='varid'>msg</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>errClass</span> <span class='varid'>level</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>msg</span>
-<a name="line-490"></a>    <span class='varid'>errClass</span> <span class='varid'>l</span>
-<a name="line-491"></a>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>"fatal error"</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>l</span> <span class='varop'>$</span> <span class='varid'>msgList</span>
-<a name="line-492"></a>	  <span class='keyword'>where</span>
-<a name="line-493"></a>	  <span class='varid'>msgList</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>c_ok</span><span class='layout'>,</span>	<span class='str'>"no error"</span><span class='layout'>)</span>
-<a name="line-494"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_warn</span><span class='layout'>,</span>	<span class='str'>"warning"</span><span class='layout'>)</span>
-<a name="line-495"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_err</span><span class='layout'>,</span>	<span class='str'>"error"</span><span class='layout'>)</span>
-<a name="line-496"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_fatal</span><span class='layout'>,</span>	<span class='str'>"fatal error"</span><span class='layout'>)</span>
-<a name="line-497"></a>			  <span class='keyglyph'>]</span>
-<a name="line-498"></a>
-<a name="line-499"></a>
-<a name="line-500"></a><span class='comment'>-- | the default error message handler: error output to stderr</span>
-<a name="line-501"></a>
-<a name="line-502"></a><a name="errorMsgStderr"></a><span class='definition'>errorMsgStderr</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-503"></a><span class='definition'>errorMsgStderr</span>		<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span><span class='layout'>)</span>
-<a name="line-504"></a>
-<a name="line-505"></a><span class='comment'>-- | error message handler for collecting errors</span>
-<a name="line-506"></a>
-<a name="line-507"></a><a name="errorMsgCollect"></a><span class='definition'>errorMsgCollect</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-508"></a><span class='definition'>errorMsgCollect</span>		<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>True</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='conid'>()</span><span class='layout'>)</span>
-<a name="line-509"></a>
-<a name="line-510"></a><span class='comment'>-- | error message handler for output to stderr and collecting</span>
-<a name="line-511"></a>
-<a name="line-512"></a><a name="errorMsgStderrAndCollect"></a><span class='definition'>errorMsgStderrAndCollect</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-513"></a><span class='definition'>errorMsgStderrAndCollect</span>	<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>True</span> <span class='layout'>(</span><span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span><span class='layout'>)</span>
-<a name="line-514"></a>
-<a name="line-515"></a><span class='comment'>-- | error message handler for ignoring errors</span>
-<a name="line-516"></a>
-<a name="line-517"></a><a name="errorMsgIgnore"></a><span class='definition'>errorMsgIgnore</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-518"></a><span class='definition'>errorMsgIgnore</span>		<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='conid'>()</span><span class='layout'>)</span>
-<a name="line-519"></a>
-<a name="line-520"></a><span class='comment'>-- |</span>
-<a name="line-521"></a><span class='comment'>-- if error messages are collected by the error handler for</span>
-<a name="line-522"></a><span class='comment'>-- processing these messages by the calling application,</span>
-<a name="line-523"></a><span class='comment'>-- this arrow reads the stored messages and clears the error message store</span>
-<a name="line-524"></a>
-<a name="line-525"></a><a name="getErrorMessages"></a><span class='definition'>getErrorMessages</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
-<a name="line-526"></a><span class='definition'>getErrorMessages</span>
-<a name="line-527"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>xio_errorMsgList</span><span class='layout'>)</span>		<span class='comment'>-- reverse the list of errors</span>
-<a name="line-528"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-529"></a>      <span class='varid'>clearErrorMsgList</span>					<span class='comment'>-- clear the error list in the system state</span>
-<a name="line-530"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-531"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>
-<a name="line-532"></a>
-<a name="line-533"></a><a name="clearErrorMsgList"></a><span class='definition'>clearErrorMsgList</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-534"></a><span class='definition'>clearErrorMsgList</span>
-<a name="line-535"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='layout'>}</span> <span class='layout'>)</span>
-<a name="line-536"></a>
-<a name="line-537"></a><a name="addToErrorMsgList"></a><span class='definition'>addToErrorMsgList</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-538"></a><span class='definition'>addToErrorMsgList</span>
-<a name="line-539"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>
-<a name="line-540"></a>    <span class='keyword'>where</span>
-<a name="line-541"></a>    <span class='varid'>cf</span> <span class='varid'>t</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>xio_errorMsgCollect</span> <span class='varid'>s</span>
-<a name="line-542"></a>	     <span class='keyword'>then</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>xio_errorMsgList</span> <span class='varid'>s</span> <span class='layout'>}</span>
-<a name="line-543"></a>	     <span class='keyword'>else</span> <span class='varid'>s</span>
-<a name="line-544"></a>
-<a name="line-545"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-546"></a>
-<a name="line-547"></a><span class='comment'>-- |</span>
-<a name="line-548"></a><span class='comment'>-- filter error messages from input trees and issue errors</span>
-<a name="line-549"></a>
-<a name="line-550"></a><a name="filterErrorMsg"></a><span class='definition'>filterErrorMsg</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-551"></a><span class='definition'>filterErrorMsg</span>
-<a name="line-552"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>setErrMsgStatus</span>
-<a name="line-553"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-554"></a>	<span class='varid'>sysErrorMsg</span>
-<a name="line-555"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-556"></a>	<span class='varid'>addToErrorMsgList</span>
-<a name="line-557"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-558"></a>	<span class='varid'>none</span>
-<a name="line-559"></a>      <span class='layout'>)</span>
-<a name="line-560"></a>      <span class='varop'>`when`</span>
-<a name="line-561"></a>      <span class='varid'>isError</span>
-<a name="line-562"></a>
-<a name="line-563"></a><span class='comment'>-- | generate a warnig message</span>
-<a name="line-564"></a>
-<a name="line-565"></a><a name="issueWarn"></a><span class='definition'>issueWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-566"></a><span class='definition'>issueWarn</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>msg</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>
-<a name="line-567"></a>
-<a name="line-568"></a><a name="issueErr"></a><span class='comment'>-- | generate an error message</span>
-<a name="line-569"></a><span class='definition'>issueErr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-570"></a><span class='definition'>issueErr</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='varid'>msg</span>   <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>
-<a name="line-571"></a>
-<a name="line-572"></a><span class='comment'>-- | generate a fatal error message, e.g. document not found</span>
-<a name="line-573"></a>
-<a name="line-574"></a><a name="issueFatal"></a><span class='definition'>issueFatal</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-575"></a><span class='definition'>issueFatal</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>fatal</span> <span class='varid'>msg</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>
-<a name="line-576"></a>
-<a name="line-577"></a><span class='comment'>-- |</span>
-<a name="line-578"></a><span class='comment'>-- add the error level and the module where the error occured</span>
-<a name="line-579"></a><span class='comment'>-- to the attributes of a document root node and remove the children when level is greater or equal to 'c_err'.</span>
-<a name="line-580"></a><span class='comment'>-- called by 'setDocumentStatusFromSystemState' when the system state indicates an error</span>
-<a name="line-581"></a>
-<a name="line-582"></a><a name="setDocumentStatus"></a><span class='definition'>setDocumentStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-583"></a><span class='definition'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>
-<a name="line-584"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttrl</span> <span class='layout'>(</span> <span class='varid'>sattr</span> <span class='varid'>a_status</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>level</span><span class='layout'>)</span>
-<a name="line-585"></a>		   <span class='varop'>&lt;+&gt;</span>
-<a name="line-586"></a>		   <span class='varid'>sattr</span> <span class='varid'>a_module</span> <span class='varid'>msg</span>
-<a name="line-587"></a>		 <span class='layout'>)</span>
-<a name="line-588"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-589"></a>	<span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>&gt;=</span> <span class='varid'>c_err</span>
-<a name="line-590"></a>	  <span class='keyword'>then</span> <span class='varid'>setChildren</span> <span class='conid'>[]</span>
-<a name="line-591"></a>	  <span class='keyword'>else</span> <span class='varid'>this</span>
-<a name="line-592"></a>	<span class='layout'>)</span>
-<a name="line-593"></a>      <span class='layout'>)</span>
-<a name="line-594"></a>      <span class='varop'>`when`</span>
-<a name="line-595"></a>      <span class='varid'>isRoot</span>
-<a name="line-596"></a>
-<a name="line-597"></a><span class='comment'>-- |</span>
-<a name="line-598"></a><span class='comment'>-- check whether the error level attribute in the system state</span>
-<a name="line-599"></a><span class='comment'>-- is set to error, in this case the children of the document root are</span>
-<a name="line-600"></a><span class='comment'>-- removed and the module name where the error occured and the error level are added as attributes with 'setDocumentStatus'</span>
-<a name="line-601"></a><span class='comment'>-- else nothing is changed</span>
-<a name="line-602"></a>
-<a name="line-603"></a><a name="setDocumentStatusFromSystemState"></a><span class='definition'>setDocumentStatusFromSystemState</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-604"></a><span class='definition'>setDocumentStatusFromSystemState</span> <span class='varid'>msg</span>
-<a name="line-605"></a>    <span class='keyglyph'>=</span> <span class='varid'>setStatus</span> <span class='varop'>$&lt;</span> <span class='varid'>getErrStatus</span>
-<a name="line-606"></a>    <span class='keyword'>where</span>
-<a name="line-607"></a>    <span class='varid'>setStatus</span> <span class='varid'>level</span>
-<a name="line-608"></a>	<span class='keyglyph'>|</span> <span class='varid'>level</span> <span class='varop'>&lt;=</span> <span class='varid'>c_warn</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
-<a name="line-609"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>
-<a name="line-610"></a>
-<a name="line-611"></a>
-<a name="line-612"></a><span class='comment'>-- |</span>
-<a name="line-613"></a><span class='comment'>-- check whether tree is a document root and the status attribute has a value less than 'c_err'</span>
-<a name="line-614"></a>
-<a name="line-615"></a><a name="documentStatusOk"></a><span class='definition'>documentStatusOk</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-616"></a><span class='definition'>documentStatusOk</span>
-<a name="line-617"></a>    <span class='keyglyph'>=</span> <span class='varid'>isRoot</span>
-<a name="line-618"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-619"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_status</span>
-<a name="line-620"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-621"></a>	 <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>null</span> <span class='varid'>v</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span> <span class='varop'>&lt;=</span> <span class='varid'>c_warn</span><span class='layout'>)</span>
-<a name="line-622"></a>	<span class='layout'>)</span>
-<a name="line-623"></a>	<span class='varop'>`guards`</span>
-<a name="line-624"></a>	<span class='varid'>this</span>
-<a name="line-625"></a>      <span class='layout'>)</span>
-<a name="line-626"></a>
-<a name="line-627"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-628"></a>
-<a name="line-629"></a><span class='comment'>-- | set the base URI of a document, used e.g. for reading includes, e.g. external entities,</span>
-<a name="line-630"></a><span class='comment'>-- the input must be an absolute URI</span>
-<a name="line-631"></a>
-<a name="line-632"></a><a name="setBaseURI"></a><span class='definition'>setBaseURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-633"></a><span class='definition'>setBaseURI</span>
-<a name="line-634"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_baseURI</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='layout'>}</span> <span class='layout'>)</span>
-<a name="line-635"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-636"></a>      <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"setBaseURI: new base URI is "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
-<a name="line-637"></a>
-<a name="line-638"></a><span class='comment'>-- | read the base URI from the globale state</span>
-<a name="line-639"></a>
-<a name="line-640"></a><a name="getBaseURI"></a><span class='definition'>getBaseURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
-<a name="line-641"></a><span class='definition'>getBaseURI</span>
-<a name="line-642"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_baseURI</span>
-<a name="line-643"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-644"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDefaultBaseURI</span>
-<a name="line-645"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-646"></a>	  <span class='varid'>setBaseURI</span>		
-<a name="line-647"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-648"></a>	  <span class='varid'>getBaseURI</span>
-<a name="line-649"></a>	<span class='layout'>)</span>
-<a name="line-650"></a>	<span class='varop'>`when`</span>
-<a name="line-651"></a>	<span class='varid'>isA</span> <span class='varid'>null</span>				<span class='comment'>-- set and get it, if not yet done</span>
-<a name="line-652"></a>      <span class='layout'>)</span>
-<a name="line-653"></a>
-<a name="line-654"></a><span class='comment'>-- | change the base URI with a possibly relative URI, can be used for</span>
-<a name="line-655"></a><span class='comment'>-- evaluating the xml:base attribute. Returns the new absolute base URI.</span>
-<a name="line-656"></a><span class='comment'>-- Fails, if input is not parsable with parseURIReference</span>
-<a name="line-657"></a><span class='comment'>--</span>
-<a name="line-658"></a><span class='comment'>-- see also: 'setBaseURI', 'mkAbsURI'</span>
-<a name="line-659"></a>
-<a name="line-660"></a><a name="changeBaseURI"></a><span class='definition'>changeBaseURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-661"></a><span class='definition'>changeBaseURI</span>
-<a name="line-662"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkAbsURI</span>
-<a name="line-663"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-664"></a>      <span class='varid'>setBaseURI</span>
-<a name="line-665"></a>
-<a name="line-666"></a><span class='comment'>-- | set the default base URI, if parameter is null, the system base (@ file:\/\/\/\&lt;cwd\&gt;\/ @) is used,</span>
-<a name="line-667"></a><span class='comment'>-- else the parameter, must be called before any document is read</span>
-<a name="line-668"></a>
-<a name="line-669"></a><a name="setDefaultBaseURI"></a><span class='definition'>setDefaultBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
-<a name="line-670"></a><span class='definition'>setDefaultBaseURI</span> <span class='varid'>base</span>
-<a name="line-671"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>base</span>
-<a name="line-672"></a>	<span class='keyword'>then</span> <span class='varid'>arrIO</span> <span class='varid'>getDir</span>
-<a name="line-673"></a>	<span class='keyword'>else</span> <span class='varid'>constA</span> <span class='varid'>base</span>
-<a name="line-674"></a>      <span class='layout'>)</span>
-<a name="line-675"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-676"></a>      <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_defaultBaseURI</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='layout'>}</span> <span class='layout'>)</span>
-<a name="line-677"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-678"></a>      <span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"setDefaultBaseURI: new default base URI is "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
-<a name="line-679"></a>    <span class='keyword'>where</span>
-<a name="line-680"></a>    <span class='varid'>getDir</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-681"></a>	       <span class='varid'>cwd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCurrentDirectory</span>
-<a name="line-682"></a>	       <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"file://"</span> <span class='varop'>++</span> <span class='varid'>normalize</span> <span class='varid'>cwd</span> <span class='varop'>++</span> <span class='str'>"/"</span><span class='layout'>)</span>
-<a name="line-683"></a>
-<a name="line-684"></a>    <span class='comment'>-- under Windows getCurrentDirectory returns something like: "c:\path\to\file"</span>
-<a name="line-685"></a>    <span class='comment'>-- backslaches are not allowed in URIs and paths must start with a /</span>
-<a name="line-686"></a>    <span class='comment'>-- so this is transformed into "/c:/path/to/file"</span>
-<a name="line-687"></a>
-<a name="line-688"></a>    <span class='varid'>normalize</span> <span class='varid'>wd'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>d</span> <span class='conop'>:</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-689"></a>	<span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'A'</span><span class='keyglyph'>..</span><span class='chr'>'Z'</span><span class='keyglyph'>]</span> <span class='varop'>||</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'a'</span><span class='keyglyph'>..</span><span class='chr'>'z'</span><span class='keyglyph'>]</span>
-<a name="line-690"></a>	    <span class='keyglyph'>=</span> <span class='chr'>'/'</span> <span class='conop'>:</span> <span class='varid'>concatMap</span> <span class='varid'>win32ToUriChar</span> <span class='varid'>wd'</span>
-<a name="line-691"></a>    <span class='varid'>normalize</span> <span class='varid'>wd'</span>
-<a name="line-692"></a>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>wd'</span>
-<a name="line-693"></a>				 
-<a name="line-694"></a>    <span class='varid'>win32ToUriChar</span> <span class='chr'>'\\'</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span>
-<a name="line-695"></a>    <span class='varid'>win32ToUriChar</span> <span class='varid'>c</span>    <span class='keyglyph'>=</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>c</span>
-<a name="line-696"></a>
-<a name="line-697"></a>    <span class='varid'>escapeNonUriChar</span> <span class='varid'>c</span>  <span class='keyglyph'>=</span> <span class='varid'>escapeURIChar</span> <span class='varid'>isUnescapedInURI</span> <span class='varid'>c</span>   <span class='comment'>-- from Network.URI</span>
-<a name="line-698"></a>
-<a name="line-699"></a>
-<a name="line-700"></a><span class='comment'>-- | get the default base URI</span>
-<a name="line-701"></a>
-<a name="line-702"></a><a name="getDefaultBaseURI"></a><span class='definition'>getDefaultBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
-<a name="line-703"></a><span class='definition'>getDefaultBaseURI</span>
-<a name="line-704"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_defaultBaseURI</span>		<span class='comment'>-- read default uri in system  state</span>
-<a name="line-705"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-706"></a>      <span class='layout'>(</span> <span class='varid'>setDefaultBaseURI</span> <span class='str'>""</span>			<span class='comment'>-- set the default uri in system state</span>
-<a name="line-707"></a>	<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-708"></a>	<span class='varid'>getDefaultBaseURI</span> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isA</span> <span class='varid'>null</span>	<span class='comment'>-- when uri not yet set</span>
-<a name="line-709"></a>
-<a name="line-710"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-711"></a>
-<a name="line-712"></a><span class='comment'>-- | remember base uri, run an arrow and restore the base URI, used with external entity substitution</span>
-<a name="line-713"></a>
-<a name="line-714"></a><a name="runInLocalURIContext"></a><span class='definition'>runInLocalURIContext</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-715"></a><span class='definition'>runInLocalURIContext</span> <span class='varid'>f</span>
-<a name="line-716"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
-<a name="line-717"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-718"></a>      <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>***</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='layout'>)</span>
-<a name="line-719"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-720"></a>      <span class='layout'>(</span> <span class='varid'>setBaseURI</span> <span class='varop'>***</span> <span class='varid'>this</span> <span class='layout'>)</span>
-<a name="line-721"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-722"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>
-<a name="line-723"></a>
-<a name="line-724"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-725"></a>
-<a name="line-726"></a><span class='comment'>-- | set the global trace level</span>
-<a name="line-727"></a>
-<a name="line-728"></a><a name="setTraceLevel"></a><span class='definition'>setTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-729"></a><span class='definition'>setTraceLevel</span> <span class='varid'>l</span>
-<a name="line-730"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span> <span class='keyglyph'>=</span> <span class='varid'>l</span> <span class='layout'>}</span> <span class='layout'>)</span>
-<a name="line-731"></a>
-<a name="line-732"></a><span class='comment'>-- | read the global trace level</span>
-<a name="line-733"></a>
-<a name="line-734"></a><a name="getTraceLevel"></a><span class='definition'>getTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>
-<a name="line-735"></a><span class='definition'>getTraceLevel</span>
-<a name="line-736"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_trace</span>
-<a name="line-737"></a>
-<a name="line-738"></a><span class='comment'>-- | run an arrow with a given trace level, the old trace level is restored after the arrow execution</span>
-<a name="line-739"></a>
-<a name="line-740"></a><a name="withTraceLevel"></a><span class='definition'>withTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>
-<a name="line-741"></a><span class='definition'>withTraceLevel</span> <span class='varid'>level</span> <span class='varid'>f</span>
-<a name="line-742"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>       <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
-<a name="line-743"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-744"></a>      <span class='layout'>(</span> <span class='varid'>setTraceLevel</span> <span class='varid'>level</span> <span class='varop'>***</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='layout'>)</span>
-<a name="line-745"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-746"></a>      <span class='layout'>(</span> <span class='varid'>restoreTraceLevel</span>   <span class='varop'>***</span> <span class='varid'>this</span> <span class='layout'>)</span>
-<a name="line-747"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-748"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>
-<a name="line-749"></a>    <span class='keyword'>where</span>
-<a name="line-750"></a>    <span class='varid'>restoreTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>
-<a name="line-751"></a>    <span class='varid'>restoreTraceLevel</span>
-<a name="line-752"></a>	<span class='keyglyph'>=</span> <span class='varid'>setTraceLevel</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
-<a name="line-753"></a>
-<a name="line-754"></a><span class='comment'>-- | apply a trace arrow and issue message to stderr</span>
-<a name="line-755"></a>
-<a name="line-756"></a><a name="trace"></a><span class='definition'>trace</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-757"></a><span class='definition'>trace</span> <span class='varid'>level</span> <span class='varid'>trc</span>
-<a name="line-758"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trc</span>
-<a name="line-759"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-760"></a>		<span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-761"></a>				<span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='varid'>s</span>
-<a name="line-762"></a>				<span class='varid'>hFlush</span> <span class='varid'>stderr</span>
-<a name="line-763"></a>			      <span class='layout'>)</span>
-<a name="line-764"></a>		      <span class='layout'>)</span>
-<a name="line-765"></a>	      <span class='layout'>)</span>
-<a name="line-766"></a>      <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>
-<a name="line-767"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-768"></a>	       <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>&gt;=</span> <span class='varid'>level</span><span class='layout'>)</span>
-<a name="line-769"></a>	     <span class='layout'>)</span>
-<a name="line-770"></a>
-<a name="line-771"></a><a name="traceMsg"></a><span class='comment'>-- | issue a string message as trace </span>
-<a name="line-772"></a><span class='definition'>traceMsg</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-773"></a><span class='definition'>traceMsg</span> <span class='varid'>level</span> <span class='varid'>msg</span>
-<a name="line-774"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trace</span> <span class='varid'>level</span> <span class='varop'>$</span>
-<a name="line-775"></a>		<span class='varid'>constA</span> <span class='layout'>(</span><span class='chr'>'-'</span> <span class='conop'>:</span> <span class='str'>"- ("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>level</span> <span class='varop'>++</span> <span class='str'>") "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span>
-<a name="line-776"></a>	      <span class='layout'>)</span>
-<a name="line-777"></a>
-<a name="line-778"></a><a name="traceString"></a><span class='comment'>-- | issue the string input of an arrow</span>
-<a name="line-779"></a><span class='definition'>traceString</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-780"></a><span class='definition'>traceString</span> <span class='varid'>level</span> <span class='varid'>f</span>
-<a name="line-781"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>traceMsg</span> <span class='varid'>level</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-782"></a>
-<a name="line-783"></a><span class='comment'>-- | issue the source representation of a document if trace level &gt;= 3</span>
-<a name="line-784"></a><span class='comment'>--</span>
-<a name="line-785"></a><span class='comment'>-- for better readability the source is formated with indentDoc</span>
-<a name="line-786"></a>
-<a name="line-787"></a><a name="traceSource"></a><span class='definition'>traceSource</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-788"></a><span class='definition'>traceSource</span> 
-<a name="line-789"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>3</span> <span class='varop'>$</span>
-<a name="line-790"></a>      <span class='varid'>xshow</span>
-<a name="line-791"></a>      <span class='layout'>(</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>indentDoc</span>
-<a name="line-792"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-793"></a>			       <span class='varid'>getChildren</span>
-<a name="line-794"></a>			     <span class='layout'>)</span>
-<a name="line-795"></a>		<span class='layout'>,</span> <span class='varid'>isElem</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span>
-<a name="line-796"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentDoc</span>
-<a name="line-797"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span>
-<a name="line-798"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isElem</span>
-<a name="line-799"></a>			     <span class='layout'>)</span>
-<a name="line-800"></a>		<span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
-<a name="line-801"></a>		<span class='keyglyph'>]</span>
-<a name="line-802"></a>      <span class='layout'>)</span>
-<a name="line-803"></a>
-<a name="line-804"></a><a name="traceTree"></a><span class='comment'>-- | issue the tree representation of a document if trace level &gt;= 4</span>
-<a name="line-805"></a><span class='definition'>traceTree</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-806"></a><span class='definition'>traceTree</span>
-<a name="line-807"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>4</span> <span class='varop'>$</span>
-<a name="line-808"></a>      <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>
-<a name="line-809"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-810"></a>	      <span class='varid'>addHeadlineToXmlDoc</span>
-<a name="line-811"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-812"></a>	      <span class='varid'>getChildren</span>
-<a name="line-813"></a>	    <span class='layout'>)</span>
-<a name="line-814"></a>
-<a name="line-815"></a><span class='comment'>-- | trace a main computation step</span>
-<a name="line-816"></a><span class='comment'>-- issue a message when trace level &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 4</span>
-<a name="line-817"></a>
-<a name="line-818"></a><a name="traceDoc"></a><span class='definition'>traceDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
-<a name="line-819"></a><span class='definition'>traceDoc</span> <span class='varid'>msg</span>
-<a name="line-820"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='varid'>msg</span>
-<a name="line-821"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-822"></a>      <span class='varid'>traceSource</span>
-<a name="line-823"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-824"></a>      <span class='varid'>traceTree</span>
-<a name="line-825"></a>
-<a name="line-826"></a><span class='comment'>-- | trace the global state</span>
-<a name="line-827"></a>
-<a name="line-828"></a><a name="traceState"></a><span class='definition'>traceState</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-829"></a><span class='definition'>traceState</span>
-<a name="line-830"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAllParams</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>concat</span><span class='layout'>)</span>
-<a name="line-831"></a>			<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-832"></a>			<span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>formatParam</span><span class='layout'>)</span>
-<a name="line-833"></a>		      <span class='layout'>)</span>
-<a name="line-834"></a>		<span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-835"></a>		<span class='varid'>traceString</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"global state:\n"</span> <span class='varop'>++</span><span class='layout'>)</span>
-<a name="line-836"></a>	      <span class='layout'>)</span>
-<a name="line-837"></a>      <span class='keyword'>where</span>
-<a name="line-838"></a>      <span class='comment'>-- formatParam	:: (String, XmlTrees) -&gt; IOStateArrow s b1 XmlTree</span>
-<a name="line-839"></a>      <span class='varid'>formatParam</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
-<a name="line-840"></a>	  <span class='keyglyph'>=</span> <span class='varid'>mkelem</span> <span class='str'>"param"</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='str'>"name"</span> <span class='varid'>n</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span>
-<a name="line-841"></a>
-<a name="line-842"></a><span class='comment'>-- ----------------------------------------------------------</span>
-<a name="line-843"></a>
-<a name="line-844"></a><span class='comment'>-- | compute the absolut URI for a given URI and a base URI</span>
-<a name="line-845"></a>
-<a name="line-846"></a><a name="expandURIString"></a><span class='definition'>expandURIString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
-<a name="line-847"></a><span class='definition'>expandURIString</span> <span class='varid'>uri</span> <span class='varid'>base</span>
-<a name="line-848"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-849"></a>      <span class='varid'>base'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>
-<a name="line-850"></a>      <span class='varid'>uri'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>
-<a name="line-851"></a>      <span class='varid'>abs'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>nonStrictRelativeTo</span> <span class='varid'>uri'</span> <span class='varid'>base'</span>
-<a name="line-852"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>show</span> <span class='varid'>abs'</span>
-<a name="line-853"></a>
-<a name="line-854"></a><span class='comment'>-- | arrow variant of 'expandURIString', fails if 'expandURIString' returns Nothing</span>
-<a name="line-855"></a>
-<a name="line-856"></a><a name="expandURI"></a><span class='definition'>expandURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>String</span>
-<a name="line-857"></a><span class='definition'>expandURI</span>
-<a name="line-858"></a>    <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>uncurry</span> <span class='varid'>expandURIString</span><span class='layout'>)</span>
-<a name="line-859"></a>
-<a name="line-860"></a><span class='comment'>-- | arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI</span>
-<a name="line-861"></a>
-<a name="line-862"></a><a name="mkAbsURI"></a><span class='definition'>mkAbsURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-863"></a><span class='definition'>mkAbsURI</span>
-<a name="line-864"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>expandURI</span>
-<a name="line-865"></a>
-<a name="line-866"></a><span class='comment'>-- | arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.</span>
-<a name="line-867"></a><span class='comment'>--</span>
-<a name="line-868"></a><span class='comment'>-- See Network.URI for URI components</span>
-<a name="line-869"></a>
-<a name="line-870"></a><a name="getSchemeFromURI"></a><span class='definition'>getSchemeFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-871"></a><span class='definition'>getSchemeFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>scheme</span>
-<a name="line-872"></a>    <span class='keyword'>where</span>
-<a name="line-873"></a>    <span class='varid'>scheme</span> <span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varop'>.</span> <span class='varid'>uriScheme</span>
-<a name="line-874"></a>
-<a name="line-875"></a><span class='comment'>-- | arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI</span>
-<a name="line-876"></a>
-<a name="line-877"></a><a name="getRegNameFromURI"></a><span class='definition'>getRegNameFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-878"></a><span class='definition'>getRegNameFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>host</span>
-<a name="line-879"></a>    <span class='keyword'>where</span>
-<a name="line-880"></a>    <span class='varid'>host</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriRegName</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>
-<a name="line-881"></a>
-<a name="line-882"></a><span class='comment'>-- | arrow for selecting the port number of the URI without leading \':\', fails if input is not a legal URI</span>
-<a name="line-883"></a>
-<a name="line-884"></a><a name="getPortFromURI"></a><span class='definition'>getPortFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-885"></a><span class='definition'>getPortFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>port</span>
-<a name="line-886"></a>    <span class='keyword'>where</span>
-<a name="line-887"></a>    <span class='varid'>port</span> <span class='keyglyph'>=</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span><span class='chr'>':'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriPort</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>
-<a name="line-888"></a>
-<a name="line-889"></a><span class='comment'>-- | arrow for selecting the user info of the URI without trailing \'\@\', fails if input is not a legal URI</span>
-<a name="line-890"></a>
-<a name="line-891"></a><a name="getUserInfoFromURI"></a><span class='definition'>getUserInfoFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-892"></a><span class='definition'>getUserInfoFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>ui</span>
-<a name="line-893"></a>    <span class='keyword'>where</span>
-<a name="line-894"></a>    <span class='varid'>ui</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span><span class='chr'>'@'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriUserInfo</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>
-<a name="line-895"></a>
-<a name="line-896"></a><span class='comment'>-- | arrow for computing the path component of an URI, fails if input is not a legal URI</span>
-<a name="line-897"></a>
-<a name="line-898"></a><a name="getPathFromURI"></a><span class='definition'>getPathFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-899"></a><span class='definition'>getPathFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriPath</span>
-<a name="line-900"></a>
-<a name="line-901"></a><span class='comment'>-- | arrow for computing the query component of an URI, fails if input is not a legal URI</span>
-<a name="line-902"></a>
-<a name="line-903"></a><a name="getQueryFromURI"></a><span class='definition'>getQueryFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-904"></a><span class='definition'>getQueryFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriQuery</span>
-<a name="line-905"></a>
-<a name="line-906"></a><span class='comment'>-- | arrow for computing the fragment component of an URI, fails if input is not a legal URI</span>
-<a name="line-907"></a>
-<a name="line-908"></a><a name="getFragmentFromURI"></a><span class='definition'>getFragmentFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-909"></a><span class='definition'>getFragmentFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriFragment</span>
-<a name="line-910"></a>
-<a name="line-911"></a><span class='comment'>-- | arrow for computing the path component of an URI, fails if input is not a legal URI</span>
-<a name="line-912"></a>
-<a name="line-913"></a><a name="getPartFromURI"></a><span class='definition'>getPartFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-914"></a><span class='definition'>getPartFromURI</span> <span class='varid'>sel</span>
-<a name="line-915"></a>    <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>getPart</span><span class='layout'>)</span>
-<a name="line-916"></a>      <span class='keyword'>where</span>
-<a name="line-917"></a>      <span class='varid'>getPart</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-918"></a>		  <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>s</span>
-<a name="line-919"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>sel</span> <span class='varid'>uri</span><span class='layout'>)</span>
-<a name="line-920"></a>
-<a name="line-921"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-922"></a>
-<a name="line-923"></a><span class='comment'>-- | set the table mapping of file extensions to mime types in the system state</span>
-<a name="line-924"></a><span class='comment'>--</span>
-<a name="line-925"></a><span class='comment'>-- Default table is defined in 'Text.XML.HXT.DOM.MimeTypeDefaults'.</span>
-<a name="line-926"></a><span class='comment'>-- This table is used when reading loacl files, (file: protocol) to determine the mime type</span>
-<a name="line-927"></a>
-<a name="line-928"></a><a name="setMimeTypeTable"></a><span class='definition'>setMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-929"></a><span class='definition'>setMimeTypeTable</span> <span class='varid'>mtt</span>
-<a name="line-930"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>xio_mimeTypes</span> <span class='keyglyph'>=</span> <span class='varid'>mtt</span><span class='layout'>}</span><span class='layout'>)</span>
-<a name="line-931"></a>
-<a name="line-932"></a><span class='comment'>-- | set the table mapping of file extensions to mime types by an external config file</span>
-<a name="line-933"></a><span class='comment'>--</span>
-<a name="line-934"></a><span class='comment'>-- The config file must follow the conventions of /etc/mime.types on a debian linux system,</span>
-<a name="line-935"></a><span class='comment'>-- that means all empty lines and all lines starting with a # are ignored. The other lines</span>
-<a name="line-936"></a><span class='comment'>-- must consist of a mime type followed by a possible empty list of extensions.</span>
-<a name="line-937"></a><span class='comment'>-- The list of extenstions and mime types overwrites the default list in the system state</span>
-<a name="line-938"></a><span class='comment'>-- of the IOStateArrow</span>
-<a name="line-939"></a>
-<a name="line-940"></a><a name="setMimeTypeTableFromFile"></a><span class='definition'>setMimeTypeTableFromFile</span>	<span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
-<a name="line-941"></a><span class='definition'>setMimeTypeTableFromFile</span> <span class='varid'>file</span>
-<a name="line-942"></a>    <span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTable</span> <span class='varop'>$&lt;</span> <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='varid'>readMimeTypeTable</span> <span class='varid'>file</span><span class='layout'>)</span>
-<a name="line-943"></a>
-<a name="line-944"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-104"></a>      <span class='varid'>traceValue</span><span class='layout'>,</span>
+<a name="line-105"></a>      <span class='varid'>traceString</span><span class='layout'>,</span>
+<a name="line-106"></a>      <span class='varid'>traceSource</span><span class='layout'>,</span>
+<a name="line-107"></a>      <span class='varid'>traceTree</span><span class='layout'>,</span>
+<a name="line-108"></a>      <span class='varid'>traceDoc</span><span class='layout'>,</span>
+<a name="line-109"></a>      <span class='varid'>traceState</span><span class='layout'>,</span>
+<a name="line-110"></a>
+<a name="line-111"></a>      <span class='comment'>-- * URI Manipulation</span>
+<a name="line-112"></a>      <span class='varid'>expandURIString</span><span class='layout'>,</span>
+<a name="line-113"></a>      <span class='varid'>expandURI</span><span class='layout'>,</span>
+<a name="line-114"></a>      <span class='varid'>mkAbsURI</span><span class='layout'>,</span>
+<a name="line-115"></a>
+<a name="line-116"></a>      <span class='varid'>getFragmentFromURI</span><span class='layout'>,</span>
+<a name="line-117"></a>      <span class='varid'>getPathFromURI</span><span class='layout'>,</span>
+<a name="line-118"></a>      <span class='varid'>getPortFromURI</span><span class='layout'>,</span>
+<a name="line-119"></a>      <span class='varid'>getQueryFromURI</span><span class='layout'>,</span>
+<a name="line-120"></a>      <span class='varid'>getRegNameFromURI</span><span class='layout'>,</span>
+<a name="line-121"></a>      <span class='varid'>getSchemeFromURI</span><span class='layout'>,</span>
+<a name="line-122"></a>      <span class='varid'>getUserInfoFromURI</span><span class='layout'>,</span>
+<a name="line-123"></a>
+<a name="line-124"></a>      <span class='comment'>-- * Mime Type Handling</span>
+<a name="line-125"></a>      <span class='varid'>setMimeTypeTable</span><span class='layout'>,</span>
+<a name="line-126"></a>      <span class='varid'>setMimeTypeTableFromFile</span>
+<a name="line-127"></a>      <span class='layout'>)</span>
+<a name="line-128"></a><span class='keyword'>where</span>
+<a name="line-129"></a>
+<a name="line-130"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</span>
+<a name="line-131"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-132"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>
+<a name="line-133"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>
+<a name="line-134"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>
+<a name="line-135"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>
+<a name="line-136"></a>
+<a name="line-137"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>
+<a name="line-138"></a>
+<a name="line-139"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-140"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-141"></a>
+<a name="line-142"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
+<a name="line-143"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-144"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-145"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
+<a name="line-146"></a>    <span class='layout'>)</span>
+<a name="line-147"></a>
+<a name="line-148"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-149"></a>
+<a name="line-150"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-151"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>
+<a name="line-152"></a>    <span class='layout'>,</span> <span class='varid'>escapeURIChar</span>
+<a name="line-153"></a>    <span class='layout'>,</span> <span class='varid'>isUnescapedInURI</span>
+<a name="line-154"></a>    <span class='layout'>,</span> <span class='varid'>nonStrictRelativeTo</span>
+<a name="line-155"></a>    <span class='layout'>,</span> <span class='varid'>parseURIReference</span>
+<a name="line-156"></a>    <span class='layout'>,</span> <span class='varid'>uriAuthority</span>
+<a name="line-157"></a>    <span class='layout'>,</span> <span class='varid'>uriFragment</span>
+<a name="line-158"></a>    <span class='layout'>,</span> <span class='varid'>uriPath</span>
+<a name="line-159"></a>    <span class='layout'>,</span> <span class='varid'>uriPort</span>
+<a name="line-160"></a>    <span class='layout'>,</span> <span class='varid'>uriQuery</span>
+<a name="line-161"></a>    <span class='layout'>,</span> <span class='varid'>uriRegName</span>
+<a name="line-162"></a>    <span class='layout'>,</span> <span class='varid'>uriScheme</span>
+<a name="line-163"></a>    <span class='layout'>,</span> <span class='varid'>uriUserInfo</span>
+<a name="line-164"></a>    <span class='layout'>)</span>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-167"></a>    <span class='layout'>(</span> <span class='varid'>hPutStrLn</span>
+<a name="line-168"></a>    <span class='layout'>,</span> <span class='varid'>hFlush</span>
+<a name="line-169"></a>    <span class='layout'>,</span> <span class='varid'>stderr</span>
+<a name="line-170"></a>    <span class='layout'>)</span>
+<a name="line-171"></a>
+<a name="line-172"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>
+<a name="line-173"></a>    <span class='layout'>(</span> <span class='varid'>getCurrentDirectory</span>
+<a name="line-174"></a>    <span class='layout'>)</span>
+<a name="line-175"></a>
+<a name="line-176"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-177"></a><span class='comment'>{- $datatypes -}</span>
+<a name="line-178"></a>
+<a name="line-179"></a>
+<a name="line-180"></a><span class='comment'>-- |</span>
+<a name="line-181"></a><span class='comment'>-- predefined system state data type with all components for the</span>
+<a name="line-182"></a><span class='comment'>-- system functions, like trace, error handling, ...</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="XIOSysState"></a><span class='keyword'>data</span> <span class='conid'>XIOSysState</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOSys</span>  <span class='layout'>{</span> <span class='varid'>xio_trace</span>			<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Int</span>
+<a name="line-185"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Int</span>
+<a name="line-186"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorModule</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>
+<a name="line-187"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span>		<span class='keyglyph'>::</span>   <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span>
+<a name="line-188"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Bool</span>
+<a name="line-189"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>XmlTrees</span>
+<a name="line-190"></a>				  <span class='layout'>,</span> <span class='varid'>xio_baseURI</span>			<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>
+<a name="line-191"></a>				  <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>
+<a name="line-192"></a>				  <span class='layout'>,</span> <span class='varid'>xio_attrList</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-193"></a>				  <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span>		<span class='keyglyph'>::</span>   <span class='conid'>MimeTypeTable</span>
+<a name="line-194"></a>				  <span class='layout'>}</span>
+<a name="line-195"></a>
+<a name="line-196"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>XIOSysState</span> <span class='keyword'>where</span>
+<a name="line-197"></a>    <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XIOSys</span> <span class='varid'>tr</span> <span class='varid'>es</span> <span class='varid'>em</span> <span class='sel'>_emh</span> <span class='varid'>emc</span> <span class='varid'>eml</span> <span class='varid'>bu</span> <span class='varid'>du</span> <span class='varid'>al</span> <span class='sel'>_mt</span><span class='layout'>)</span>
+<a name="line-198"></a>	<span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>tr</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>es</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>em</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>emc</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>eml</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>bu</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>du</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>al</span>
+<a name="line-199"></a>
+<a name="line-200"></a><span class='comment'>-- |</span>
+<a name="line-201"></a><span class='comment'>-- state datatype consists of a system state and a user state</span>
+<a name="line-202"></a><span class='comment'>-- the user state is not fixed</span>
+<a name="line-203"></a>
+<a name="line-204"></a><a name="XIOState"></a><span class='keyword'>data</span> <span class='conid'>XIOState</span> <span class='varid'>us</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>XIOSysState</span>
+<a name="line-205"></a>				   <span class='layout'>,</span> <span class='varid'>xio_userState</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='varid'>us</span>
+<a name="line-206"></a>				   <span class='layout'>}</span>
+<a name="line-207"></a>
+<a name="line-208"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NFData</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-209"></a>    <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>sys</span> <span class='varid'>usr</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>sys</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>usr</span>
+<a name="line-210"></a>
+<a name="line-211"></a><span class='comment'>-- |</span>
+<a name="line-212"></a><span class='comment'>-- The arrow type for stateful arrows</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="IOStateArrow"></a><span class='keyword'>type</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-215"></a>
+<a name="line-216"></a><span class='comment'>-- |</span>
+<a name="line-217"></a><span class='comment'>-- The arrow for stateful arrows with no user defined state</span>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="IOSArrow"></a><span class='keyword'>type</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>()</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-220"></a>
+<a name="line-221"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-222"></a>
+<a name="line-223"></a>
+<a name="line-224"></a><span class='comment'>-- | the default global state, used as initial state when running an 'IOSArrow' with 'runIOSLA' or</span>
+<a name="line-225"></a><span class='comment'>-- 'runX'</span>
+<a name="line-226"></a>
+<a name="line-227"></a><a name="initialState"></a><span class='definition'>initialState</span>	<span class='keyglyph'>::</span> <span class='varid'>us</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOState</span> <span class='varid'>us</span>
+<a name="line-228"></a><span class='definition'>initialState</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> 	<span class='keyglyph'>=</span> <span class='varid'>initialSysState</span>
+<a name="line-229"></a>			   <span class='layout'>,</span> <span class='varid'>xio_userState</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-230"></a>			   <span class='layout'>}</span>
+<a name="line-231"></a>
+<a name="line-232"></a><a name="initialSysState"></a><span class='definition'>initialSysState</span>	<span class='keyglyph'>::</span> <span class='conid'>XIOSysState</span>
+<a name="line-233"></a><span class='definition'>initialSysState</span>	<span class='keyglyph'>=</span> <span class='conid'>XIOSys</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span>		<span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-234"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span>	<span class='keyglyph'>=</span> <span class='varid'>c_ok</span>
+<a name="line-235"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorModule</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-236"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span>	<span class='keyglyph'>=</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span>
+<a name="line-237"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-238"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-239"></a>			 <span class='layout'>,</span> <span class='varid'>xio_baseURI</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-240"></a>			 <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-241"></a>			 <span class='layout'>,</span> <span class='varid'>xio_attrList</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-242"></a>			 <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span>	<span class='keyglyph'>=</span> <span class='varid'>defaultMimeTypeTable</span>
+<a name="line-243"></a>			 <span class='layout'>}</span>
+<a name="line-244"></a>
+<a name="line-245"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-246"></a>
+<a name="line-247"></a><span class='comment'>-- |</span>
+<a name="line-248"></a><span class='comment'>-- apply an 'IOSArrow' to an empty root node with 'initialState' () as initial state</span>
+<a name="line-249"></a><span class='comment'>--</span>
+<a name="line-250"></a><span class='comment'>-- the main entry point for running a state arrow with IO</span>
+<a name="line-251"></a><span class='comment'>--</span>
+<a name="line-252"></a><span class='comment'>-- when running @ runX f@ an empty XML root node is applied to @f@.</span>
+<a name="line-253"></a><span class='comment'>-- usually @f@ will start with a constant arrow (ignoring the input), e.g. a 'Text.XML.HXT.Arrow.ReadDocument.readDocument' arrow.</span>
+<a name="line-254"></a><span class='comment'>--</span>
+<a name="line-255"></a><span class='comment'>-- for usage see examples with 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'</span>
+<a name="line-256"></a><span class='comment'>--</span>
+<a name="line-257"></a><span class='comment'>-- if input has to be feed into the arrow use 'Control.Arrow.IOStateListArrow.runIOSLA' like in @ runIOSLA f emptyX inputDoc @</span>
+<a name="line-258"></a>
+<a name="line-259"></a><a name="runX"></a><span class='definition'>runX</span>		<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-260"></a><span class='definition'>runX</span>		<span class='keyglyph'>=</span> <span class='varid'>runXIOState</span> <span class='layout'>(</span><span class='varid'>initialState</span> <span class='conid'>()</span><span class='layout'>)</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="runXIOState"></a><span class='definition'>runXIOState</span>	<span class='keyglyph'>::</span> <span class='conid'>XIOState</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-263"></a><span class='definition'>runXIOState</span> <span class='varid'>s0</span> <span class='varid'>f</span>
+<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-265"></a>      <span class='layout'>(</span><span class='sel'>_finalState</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>emptyRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>s0</span> <span class='varid'>undefined</span>
+<a name="line-266"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-267"></a>    <span class='keyword'>where</span>
+<a name="line-268"></a>    <span class='varid'>emptyRoot</span>    <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-269"></a>
+<a name="line-270"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-271"></a>
+<a name="line-272"></a><span class='comment'>{- user state -}</span>
+<a name="line-273"></a>
+<a name="line-274"></a><span class='comment'>-- | read the user defined part of the state</span>
+<a name="line-275"></a>
+<a name="line-276"></a><a name="getUserState"></a><span class='definition'>getUserState</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>s</span>
+<a name="line-277"></a><span class='definition'>getUserState</span>
+<a name="line-278"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-279"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>xio_userState</span> <span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-280"></a>
+<a name="line-281"></a><span class='comment'>-- | change the user defined part of the state</span>
+<a name="line-282"></a>
+<a name="line-283"></a><a name="changeUserState"></a><span class='definition'>changeUserState</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-284"></a><span class='definition'>changeUserState</span> <span class='varid'>cf</span>
+<a name="line-285"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-286"></a>      <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>cf</span> <span class='varid'>v</span> <span class='layout'>(</span><span class='varid'>xio_userState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-287"></a>      <span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>v</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-288"></a>
+<a name="line-289"></a><span class='comment'>-- | set the user defined part of the state</span>
+<a name="line-290"></a>
+<a name="line-291"></a><a name="setUserState"></a><span class='definition'>setUserState</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>s</span>
+<a name="line-292"></a><span class='definition'>setUserState</span>
+<a name="line-293"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>const</span>
+<a name="line-294"></a>
+<a name="line-295"></a><span class='comment'>-- | extend user state</span>
+<a name="line-296"></a><span class='comment'>--</span>
+<a name="line-297"></a><span class='comment'>-- Run an arrow with an extended user state component, The old component</span>
+<a name="line-298"></a><span class='comment'>-- is stored together with a new one in a pair, the arrow is executed with this</span>
+<a name="line-299"></a><span class='comment'>-- extended state, and the augmented state component is removed form the state</span>
+<a name="line-300"></a><span class='comment'>-- when the arrow has finished its execution</span>
+<a name="line-301"></a>
+<a name="line-302"></a><a name="withExtendedUserState"></a><span class='definition'>withExtendedUserState</span>	<span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s0</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-303"></a><span class='definition'>withExtendedUserState</span> <span class='varid'>initS1</span> <span class='varid'>f</span>
+<a name="line-304"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s0</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-305"></a>      <span class='keyword'>do</span>
+<a name="line-306"></a>      <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>finalS</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='varid'>f</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span>          <span class='varid'>xio_sysState</span>  <span class='varid'>s0</span>
+<a name="line-307"></a>					      <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>initS1</span><span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='varid'>s0</span><span class='layout'>)</span>
+<a name="line-308"></a>					      <span class='layout'>}</span>
+<a name="line-309"></a>				   <span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-310"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span>      <span class='varid'>xio_sysState</span>  <span class='varid'>finalS</span>
+<a name="line-311"></a>			<span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>snd</span> <span class='layout'>(</span><span class='varid'>xio_userState</span> <span class='varid'>finalS</span><span class='layout'>)</span>
+<a name="line-312"></a>			<span class='layout'>}</span>
+<a name="line-313"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>
+<a name="line-314"></a>	     <span class='layout'>)</span>
+<a name="line-315"></a>
+<a name="line-316"></a><span class='comment'>-- | change the type of user state</span>
+<a name="line-317"></a><span class='comment'>--</span>
+<a name="line-318"></a><span class='comment'>-- This conversion is useful, when running a state arrow with another</span>
+<a name="line-319"></a><span class='comment'>-- structure of the user state, e.g. with () when executing some IO arrows</span>
+<a name="line-320"></a>
+<a name="line-321"></a><a name="withOtherUserState"></a><span class='definition'>withOtherUserState</span>	<span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-322"></a><span class='definition'>withOtherUserState</span> <span class='varid'>s1</span> <span class='varid'>f</span>
+<a name="line-323"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-324"></a>      <span class='keyword'>do</span>
+<a name="line-325"></a>      <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='varid'>f</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span> <span class='varid'>s</span>
+<a name="line-326"></a>					 <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>s1</span>
+<a name="line-327"></a>					 <span class='layout'>}</span>
+<a name="line-328"></a>			      <span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-329"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span>  <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span>  <span class='varid'>s'</span>
+<a name="line-330"></a>			<span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_userState</span> <span class='varid'>s</span>
+<a name="line-331"></a>			<span class='layout'>}</span>
+<a name="line-332"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>
+<a name="line-333"></a>	     <span class='layout'>)</span>
+<a name="line-334"></a>
+<a name="line-335"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-336"></a>
+<a name="line-337"></a><span class='comment'>{- $system state params -}</span>
+<a name="line-338"></a>
+<a name="line-339"></a><a name="getSysParam"></a><span class='definition'>getSysParam</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XIOSysState</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-340"></a><span class='definition'>getSysParam</span> <span class='varid'>f</span>
+<a name="line-341"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='sel'>_x</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-342"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>xio_sysState</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-343"></a>
+<a name="line-344"></a><a name="changeSysParam"></a><span class='definition'>changeSysParam</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOSysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOSysState</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-345"></a><span class='definition'>changeSysParam</span> <span class='varid'>cf</span>
+<a name="line-346"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-347"></a>	<span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>changeSysState</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-348"></a>	<span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>v</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-349"></a>      <span class='layout'>)</span>
+<a name="line-350"></a>    <span class='keyword'>where</span>
+<a name="line-351"></a>    <span class='varid'>changeSysState</span> <span class='varid'>css</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>css</span> <span class='layout'>(</span><span class='varid'>xio_sysState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-352"></a>
+<a name="line-353"></a><span class='comment'>-- | store a single XML tree in global state under a given attribute name</span>
+<a name="line-354"></a>
+<a name="line-355"></a><a name="setParam"></a><span class='definition'>setParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-356"></a><span class='definition'>setParam</span> <span class='varid'>n</span>
+<a name="line-357"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>setParamList</span> <span class='varid'>n</span>
+<a name="line-358"></a>
+<a name="line-359"></a><span class='comment'>-- | store a list of XML trees in global system state under a given attribute name</span>
+<a name="line-360"></a>
+<a name="line-361"></a><a name="setParamList"></a><span class='definition'>setParamList</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-362"></a><span class='definition'>setParamList</span> <span class='varid'>n</span>
+<a name="line-363"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>addE</span>
+<a name="line-364"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-365"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>
+<a name="line-366"></a>    <span class='keyword'>where</span>
+<a name="line-367"></a>    <span class='varid'>addE</span> <span class='varid'>x</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='varid'>addEntry</span> <span class='varid'>n</span> <span class='varid'>x</span> <span class='layout'>(</span><span class='varid'>xio_attrList</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-368"></a>
+<a name="line-369"></a><span class='comment'>-- | remove an entry in global state, arrow input remains unchanged</span>
+<a name="line-370"></a>
+<a name="line-371"></a><a name="unsetParam"></a><span class='definition'>unsetParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-372"></a><span class='definition'>unsetParam</span> <span class='varid'>n</span>
+<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>delE</span>
+<a name="line-374"></a>    <span class='keyword'>where</span>
+<a name="line-375"></a>    <span class='varid'>delE</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='varid'>delEntry</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>xio_attrList</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-376"></a>
+<a name="line-377"></a><span class='comment'>-- | read an attribute value from global state</span>
+<a name="line-378"></a>
+<a name="line-379"></a><a name="getParam"></a><span class='definition'>getParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-380"></a><span class='definition'>getParam</span> <span class='varid'>n</span>
+<a name="line-381"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>
+<a name="line-382"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-383"></a>      <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-384"></a>
+<a name="line-385"></a><span class='comment'>-- | read all attributes from global state</span>
+<a name="line-386"></a>
+<a name="line-387"></a><a name="getAllParams"></a><span class='definition'>getAllParams</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-388"></a><span class='definition'>getAllParams</span>
+<a name="line-389"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_attrList</span>
+<a name="line-390"></a>
+<a name="line-391"></a><span class='comment'>-- | read all attributes from global state</span>
+<a name="line-392"></a><span class='comment'>-- and convert the values to strings</span>
+<a name="line-393"></a>
+<a name="line-394"></a><a name="getAllParamsString"></a><span class='definition'>getAllParamsString</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-395"></a><span class='definition'>getAllParamsString</span>
+<a name="line-396"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>
+<a name="line-397"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-398"></a>      <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-399"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-400"></a>	      <span class='varid'>second</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>unlistA</span><span class='layout'>)</span>
+<a name="line-401"></a>	    <span class='layout'>)</span>
+<a name="line-402"></a>
+<a name="line-403"></a><a name="setParamString"></a><span class='definition'>setParamString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-404"></a><span class='definition'>setParamString</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-405"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>v</span>
+<a name="line-406"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-407"></a>		<span class='varid'>setParam</span> <span class='varid'>n</span>
+<a name="line-408"></a>	      <span class='layout'>)</span>
+<a name="line-409"></a>
+<a name="line-410"></a><span class='comment'>-- | read a string value from global state,</span>
+<a name="line-411"></a><span class='comment'>-- if parameter not set \"\" is returned</span>
+<a name="line-412"></a>
+<a name="line-413"></a><a name="getParamString"></a><span class='definition'>getParamString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
+<a name="line-414"></a><span class='definition'>getParamString</span> <span class='varid'>n</span>
+<a name="line-415"></a>    <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getParam</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-416"></a>
+<a name="line-417"></a><span class='comment'>-- | store an int value in global state</span>
+<a name="line-418"></a>
+<a name="line-419"></a><a name="setParamInt"></a><span class='definition'>setParamInt</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-420"></a><span class='definition'>setParamInt</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-421"></a>    <span class='keyglyph'>=</span> <span class='varid'>setParamString</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-422"></a>
+<a name="line-423"></a><span class='comment'>-- | read an int value from global state</span>
+<a name="line-424"></a><span class='comment'>-- </span>
+<a name="line-425"></a><span class='comment'>-- &gt; getParamInt 0 myIntAttr</span>
+<a name="line-426"></a>
+<a name="line-427"></a><a name="getParamInt"></a><span class='definition'>getParamInt</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>
+<a name="line-428"></a><span class='definition'>getParamInt</span> <span class='varid'>def</span> <span class='varid'>n</span>
+<a name="line-429"></a>    <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>n</span>
+<a name="line-430"></a>      <span class='varop'>&gt;&gt;^</span>
+<a name="line-431"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='varid'>def</span> <span class='keyword'>else</span> <span class='varid'>read</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-432"></a>
+<a name="line-433"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-434"></a>
+<a name="line-435"></a><span class='comment'>-- | reset global error variable</span>
+<a name="line-436"></a>
+<a name="line-437"></a><a name="changeErrorStatus"></a><span class='definition'>changeErrorStatus</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>
+<a name="line-438"></a><span class='definition'>changeErrorStatus</span> <span class='varid'>f</span>
+<a name="line-439"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorStatus</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>l</span> <span class='layout'>(</span><span class='varid'>xio_errorStatus</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span><span class='layout'>)</span>
+<a name="line-440"></a>
+<a name="line-441"></a><a name="clearErrStatus"></a><span class='definition'>clearErrStatus</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-442"></a><span class='definition'>clearErrStatus</span>
+<a name="line-443"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='num'>0</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>min</span><span class='layout'>)</span>
+<a name="line-444"></a>
+<a name="line-445"></a><span class='comment'>-- | set global error variable</span>
+<a name="line-446"></a>
+<a name="line-447"></a><a name="setErrStatus"></a><span class='definition'>setErrStatus</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>
+<a name="line-448"></a><span class='definition'>setErrStatus</span>
+<a name="line-449"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>max</span>
+<a name="line-450"></a>
+<a name="line-451"></a><span class='comment'>-- | read current global error status</span>
+<a name="line-452"></a>
+<a name="line-453"></a><a name="getErrStatus"></a><span class='definition'>getErrStatus</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>
+<a name="line-454"></a><span class='definition'>getErrStatus</span>
+<a name="line-455"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_errorStatus</span>
+<a name="line-456"></a>
+<a name="line-457"></a><span class='comment'>-- | raise the global error status level to that of the input tree</span>
+<a name="line-458"></a>
+<a name="line-459"></a><a name="setErrMsgStatus"></a><span class='definition'>setErrMsgStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-460"></a><span class='definition'>setErrMsgStatus</span>
+<a name="line-461"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span>
+<a name="line-462"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-463"></a>		<span class='varid'>setErrStatus</span>
+<a name="line-464"></a>	      <span class='layout'>)</span>
+<a name="line-465"></a>
+<a name="line-466"></a><span class='comment'>-- | set the error message handler and the flag for collecting the errors</span>
+<a name="line-467"></a>
+<a name="line-468"></a><a name="setErrorMsgHandler"></a><span class='definition'>setErrorMsgHandler</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-469"></a><span class='definition'>setErrorMsgHandler</span> <span class='varid'>c</span> <span class='varid'>f</span>
+<a name="line-470"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>
+<a name="line-471"></a>    <span class='keyword'>where</span>
+<a name="line-472"></a>    <span class='varid'>cf</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgHandler</span> <span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-473"></a>	       <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='layout'>}</span>
+<a name="line-474"></a>
+<a name="line-475"></a><span class='comment'>-- | error message handler for output to stderr</span>
+<a name="line-476"></a>		  
+<a name="line-477"></a><a name="sysErrorMsg"></a><span class='definition'>sysErrorMsg</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-478"></a><span class='definition'>sysErrorMsg</span>
+<a name="line-479"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getErrorMsg</span>
+<a name="line-480"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-481"></a>		<span class='varid'>arr</span> <span class='varid'>formatErrorMsg</span>
+<a name="line-482"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-483"></a>		<span class='layout'>(</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-484"></a>		  <span class='keyword'>do</span>
+<a name="line-485"></a>		  <span class='layout'>(</span><span class='varid'>xio_errorMsgHandler</span> <span class='varop'>.</span> <span class='varid'>xio_sysState</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>e</span>
+<a name="line-486"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>undefined</span><span class='layout'>)</span>
+<a name="line-487"></a>		<span class='layout'>)</span>
+<a name="line-488"></a>	      <span class='layout'>)</span>
+<a name="line-489"></a>    <span class='keyword'>where</span>
+<a name="line-490"></a>    <span class='varid'>formatErrorMsg</span> <span class='layout'>(</span><span class='varid'>level</span><span class='layout'>,</span> <span class='varid'>msg</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>errClass</span> <span class='varid'>level</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>msg</span>
+<a name="line-491"></a>    <span class='varid'>errClass</span> <span class='varid'>l</span>
+<a name="line-492"></a>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>"fatal error"</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>l</span> <span class='varop'>$</span> <span class='varid'>msgList</span>
+<a name="line-493"></a>	  <span class='keyword'>where</span>
+<a name="line-494"></a>	  <span class='varid'>msgList</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>c_ok</span><span class='layout'>,</span>	<span class='str'>"no error"</span><span class='layout'>)</span>
+<a name="line-495"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_warn</span><span class='layout'>,</span>	<span class='str'>"warning"</span><span class='layout'>)</span>
+<a name="line-496"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_err</span><span class='layout'>,</span>	<span class='str'>"error"</span><span class='layout'>)</span>
+<a name="line-497"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_fatal</span><span class='layout'>,</span>	<span class='str'>"fatal error"</span><span class='layout'>)</span>
+<a name="line-498"></a>			  <span class='keyglyph'>]</span>
+<a name="line-499"></a>
+<a name="line-500"></a>
+<a name="line-501"></a><span class='comment'>-- | the default error message handler: error output to stderr</span>
+<a name="line-502"></a>
+<a name="line-503"></a><a name="errorMsgStderr"></a><span class='definition'>errorMsgStderr</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-504"></a><span class='definition'>errorMsgStderr</span>		<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span><span class='layout'>)</span>
+<a name="line-505"></a>
+<a name="line-506"></a><span class='comment'>-- | error message handler for collecting errors</span>
+<a name="line-507"></a>
+<a name="line-508"></a><a name="errorMsgCollect"></a><span class='definition'>errorMsgCollect</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-509"></a><span class='definition'>errorMsgCollect</span>		<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>True</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='conid'>()</span><span class='layout'>)</span>
+<a name="line-510"></a>
+<a name="line-511"></a><span class='comment'>-- | error message handler for output to stderr and collecting</span>
+<a name="line-512"></a>
+<a name="line-513"></a><a name="errorMsgStderrAndCollect"></a><span class='definition'>errorMsgStderrAndCollect</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-514"></a><span class='definition'>errorMsgStderrAndCollect</span>	<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>True</span> <span class='layout'>(</span><span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span><span class='layout'>)</span>
+<a name="line-515"></a>
+<a name="line-516"></a><span class='comment'>-- | error message handler for ignoring errors</span>
+<a name="line-517"></a>
+<a name="line-518"></a><a name="errorMsgIgnore"></a><span class='definition'>errorMsgIgnore</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-519"></a><span class='definition'>errorMsgIgnore</span>		<span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='conid'>()</span><span class='layout'>)</span>
+<a name="line-520"></a>
+<a name="line-521"></a><span class='comment'>-- |</span>
+<a name="line-522"></a><span class='comment'>-- if error messages are collected by the error handler for</span>
+<a name="line-523"></a><span class='comment'>-- processing these messages by the calling application,</span>
+<a name="line-524"></a><span class='comment'>-- this arrow reads the stored messages and clears the error message store</span>
+<a name="line-525"></a>
+<a name="line-526"></a><a name="getErrorMessages"></a><span class='definition'>getErrorMessages</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-527"></a><span class='definition'>getErrorMessages</span>
+<a name="line-528"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>xio_errorMsgList</span><span class='layout'>)</span>		<span class='comment'>-- reverse the list of errors</span>
+<a name="line-529"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-530"></a>      <span class='varid'>clearErrorMsgList</span>					<span class='comment'>-- clear the error list in the system state</span>
+<a name="line-531"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-532"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>
+<a name="line-533"></a>
+<a name="line-534"></a><a name="clearErrorMsgList"></a><span class='definition'>clearErrorMsgList</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-535"></a><span class='definition'>clearErrorMsgList</span>
+<a name="line-536"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='layout'>}</span> <span class='layout'>)</span>
+<a name="line-537"></a>
+<a name="line-538"></a><a name="addToErrorMsgList"></a><span class='definition'>addToErrorMsgList</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-539"></a><span class='definition'>addToErrorMsgList</span>
+<a name="line-540"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>
+<a name="line-541"></a>    <span class='keyword'>where</span>
+<a name="line-542"></a>    <span class='varid'>cf</span> <span class='varid'>t</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>xio_errorMsgCollect</span> <span class='varid'>s</span>
+<a name="line-543"></a>	     <span class='keyword'>then</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>xio_errorMsgList</span> <span class='varid'>s</span> <span class='layout'>}</span>
+<a name="line-544"></a>	     <span class='keyword'>else</span> <span class='varid'>s</span>
+<a name="line-545"></a>
+<a name="line-546"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-547"></a>
+<a name="line-548"></a><span class='comment'>-- |</span>
+<a name="line-549"></a><span class='comment'>-- filter error messages from input trees and issue errors</span>
+<a name="line-550"></a>
+<a name="line-551"></a><a name="filterErrorMsg"></a><span class='definition'>filterErrorMsg</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-552"></a><span class='definition'>filterErrorMsg</span>
+<a name="line-553"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>setErrMsgStatus</span>
+<a name="line-554"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-555"></a>	<span class='varid'>sysErrorMsg</span>
+<a name="line-556"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-557"></a>	<span class='varid'>addToErrorMsgList</span>
+<a name="line-558"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-559"></a>	<span class='varid'>none</span>
+<a name="line-560"></a>      <span class='layout'>)</span>
+<a name="line-561"></a>      <span class='varop'>`when`</span>
+<a name="line-562"></a>      <span class='varid'>isError</span>
+<a name="line-563"></a>
+<a name="line-564"></a><span class='comment'>-- | generate a warnig message</span>
+<a name="line-565"></a>
+<a name="line-566"></a><a name="issueWarn"></a><span class='definition'>issueWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-567"></a><span class='definition'>issueWarn</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>msg</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>
+<a name="line-568"></a>
+<a name="line-569"></a><a name="issueErr"></a><span class='comment'>-- | generate an error message</span>
+<a name="line-570"></a><span class='definition'>issueErr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-571"></a><span class='definition'>issueErr</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='varid'>msg</span>   <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>
+<a name="line-572"></a>
+<a name="line-573"></a><span class='comment'>-- | generate a fatal error message, e.g. document not found</span>
+<a name="line-574"></a>
+<a name="line-575"></a><a name="issueFatal"></a><span class='definition'>issueFatal</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-576"></a><span class='definition'>issueFatal</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>fatal</span> <span class='varid'>msg</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>
+<a name="line-577"></a>
+<a name="line-578"></a><span class='comment'>-- |</span>
+<a name="line-579"></a><span class='comment'>-- add the error level and the module where the error occured</span>
+<a name="line-580"></a><span class='comment'>-- to the attributes of a document root node and remove the children when level is greater or equal to 'c_err'.</span>
+<a name="line-581"></a><span class='comment'>-- called by 'setDocumentStatusFromSystemState' when the system state indicates an error</span>
+<a name="line-582"></a>
+<a name="line-583"></a><a name="setDocumentStatus"></a><span class='definition'>setDocumentStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-584"></a><span class='definition'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>
+<a name="line-585"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttrl</span> <span class='layout'>(</span> <span class='varid'>sattr</span> <span class='varid'>a_status</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>level</span><span class='layout'>)</span>
+<a name="line-586"></a>		   <span class='varop'>&lt;+&gt;</span>
+<a name="line-587"></a>		   <span class='varid'>sattr</span> <span class='varid'>a_module</span> <span class='varid'>msg</span>
+<a name="line-588"></a>		 <span class='layout'>)</span>
+<a name="line-589"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-590"></a>	<span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>&gt;=</span> <span class='varid'>c_err</span>
+<a name="line-591"></a>	  <span class='keyword'>then</span> <span class='varid'>setChildren</span> <span class='conid'>[]</span>
+<a name="line-592"></a>	  <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-593"></a>	<span class='layout'>)</span>
+<a name="line-594"></a>      <span class='layout'>)</span>
+<a name="line-595"></a>      <span class='varop'>`when`</span>
+<a name="line-596"></a>      <span class='varid'>isRoot</span>
+<a name="line-597"></a>
+<a name="line-598"></a><span class='comment'>-- |</span>
+<a name="line-599"></a><span class='comment'>-- check whether the error level attribute in the system state</span>
+<a name="line-600"></a><span class='comment'>-- is set to error, in this case the children of the document root are</span>
+<a name="line-601"></a><span class='comment'>-- removed and the module name where the error occured and the error level are added as attributes with 'setDocumentStatus'</span>
+<a name="line-602"></a><span class='comment'>-- else nothing is changed</span>
+<a name="line-603"></a>
+<a name="line-604"></a><a name="setDocumentStatusFromSystemState"></a><span class='definition'>setDocumentStatusFromSystemState</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-605"></a><span class='definition'>setDocumentStatusFromSystemState</span> <span class='varid'>msg</span>
+<a name="line-606"></a>    <span class='keyglyph'>=</span> <span class='varid'>setStatus</span> <span class='varop'>$&lt;</span> <span class='varid'>getErrStatus</span>
+<a name="line-607"></a>    <span class='keyword'>where</span>
+<a name="line-608"></a>    <span class='varid'>setStatus</span> <span class='varid'>level</span>
+<a name="line-609"></a>	<span class='keyglyph'>|</span> <span class='varid'>level</span> <span class='varop'>&lt;=</span> <span class='varid'>c_warn</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-610"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>
+<a name="line-611"></a>
+<a name="line-612"></a>
+<a name="line-613"></a><span class='comment'>-- |</span>
+<a name="line-614"></a><span class='comment'>-- check whether tree is a document root and the status attribute has a value less than 'c_err'</span>
+<a name="line-615"></a>
+<a name="line-616"></a><a name="documentStatusOk"></a><span class='definition'>documentStatusOk</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-617"></a><span class='definition'>documentStatusOk</span>
+<a name="line-618"></a>    <span class='keyglyph'>=</span> <span class='varid'>isRoot</span>
+<a name="line-619"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-620"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_status</span>
+<a name="line-621"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-622"></a>	 <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>null</span> <span class='varid'>v</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span> <span class='varop'>&lt;=</span> <span class='varid'>c_warn</span><span class='layout'>)</span>
+<a name="line-623"></a>	<span class='layout'>)</span>
+<a name="line-624"></a>	<span class='varop'>`guards`</span>
+<a name="line-625"></a>	<span class='varid'>this</span>
+<a name="line-626"></a>      <span class='layout'>)</span>
+<a name="line-627"></a>
+<a name="line-628"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-629"></a>
+<a name="line-630"></a><span class='comment'>-- | set the base URI of a document, used e.g. for reading includes, e.g. external entities,</span>
+<a name="line-631"></a><span class='comment'>-- the input must be an absolute URI</span>
+<a name="line-632"></a>
+<a name="line-633"></a><a name="setBaseURI"></a><span class='definition'>setBaseURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-634"></a><span class='definition'>setBaseURI</span>
+<a name="line-635"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_baseURI</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='layout'>}</span> <span class='layout'>)</span>
+<a name="line-636"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-637"></a>      <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"setBaseURI: new base URI is "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-638"></a>
+<a name="line-639"></a><span class='comment'>-- | read the base URI from the globale state</span>
+<a name="line-640"></a>
+<a name="line-641"></a><a name="getBaseURI"></a><span class='definition'>getBaseURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
+<a name="line-642"></a><span class='definition'>getBaseURI</span>
+<a name="line-643"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_baseURI</span>
+<a name="line-644"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-645"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDefaultBaseURI</span>
+<a name="line-646"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-647"></a>	  <span class='varid'>setBaseURI</span>		
+<a name="line-648"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-649"></a>	  <span class='varid'>getBaseURI</span>
+<a name="line-650"></a>	<span class='layout'>)</span>
+<a name="line-651"></a>	<span class='varop'>`when`</span>
+<a name="line-652"></a>	<span class='varid'>isA</span> <span class='varid'>null</span>				<span class='comment'>-- set and get it, if not yet done</span>
+<a name="line-653"></a>      <span class='layout'>)</span>
+<a name="line-654"></a>
+<a name="line-655"></a><span class='comment'>-- | change the base URI with a possibly relative URI, can be used for</span>
+<a name="line-656"></a><span class='comment'>-- evaluating the xml:base attribute. Returns the new absolute base URI.</span>
+<a name="line-657"></a><span class='comment'>-- Fails, if input is not parsable with parseURIReference</span>
+<a name="line-658"></a><span class='comment'>--</span>
+<a name="line-659"></a><span class='comment'>-- see also: 'setBaseURI', 'mkAbsURI'</span>
+<a name="line-660"></a>
+<a name="line-661"></a><a name="changeBaseURI"></a><span class='definition'>changeBaseURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-662"></a><span class='definition'>changeBaseURI</span>
+<a name="line-663"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkAbsURI</span>
+<a name="line-664"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-665"></a>      <span class='varid'>setBaseURI</span>
+<a name="line-666"></a>
+<a name="line-667"></a><span class='comment'>-- | set the default base URI, if parameter is null, the system base (@ file:\/\/\/\&lt;cwd\&gt;\/ @) is used,</span>
+<a name="line-668"></a><span class='comment'>-- else the parameter, must be called before any document is read</span>
+<a name="line-669"></a>
+<a name="line-670"></a><a name="setDefaultBaseURI"></a><span class='definition'>setDefaultBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
+<a name="line-671"></a><span class='definition'>setDefaultBaseURI</span> <span class='varid'>base</span>
+<a name="line-672"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>base</span>
+<a name="line-673"></a>	<span class='keyword'>then</span> <span class='varid'>arrIO</span> <span class='varid'>getDir</span>
+<a name="line-674"></a>	<span class='keyword'>else</span> <span class='varid'>constA</span> <span class='varid'>base</span>
+<a name="line-675"></a>      <span class='layout'>)</span>
+<a name="line-676"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-677"></a>      <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_defaultBaseURI</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='layout'>}</span> <span class='layout'>)</span>
+<a name="line-678"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-679"></a>      <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"setDefaultBaseURI: new default base URI is "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-680"></a>    <span class='keyword'>where</span>
+<a name="line-681"></a>    <span class='varid'>getDir</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-682"></a>	       <span class='varid'>cwd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCurrentDirectory</span>
+<a name="line-683"></a>	       <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"file://"</span> <span class='varop'>++</span> <span class='varid'>normalize</span> <span class='varid'>cwd</span> <span class='varop'>++</span> <span class='str'>"/"</span><span class='layout'>)</span>
+<a name="line-684"></a>
+<a name="line-685"></a>    <span class='comment'>-- under Windows getCurrentDirectory returns something like: "c:\path\to\file"</span>
+<a name="line-686"></a>    <span class='comment'>-- backslaches are not allowed in URIs and paths must start with a /</span>
+<a name="line-687"></a>    <span class='comment'>-- so this is transformed into "/c:/path/to/file"</span>
+<a name="line-688"></a>
+<a name="line-689"></a>    <span class='varid'>normalize</span> <span class='varid'>wd'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>d</span> <span class='conop'>:</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-690"></a>	<span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'A'</span><span class='keyglyph'>..</span><span class='chr'>'Z'</span><span class='keyglyph'>]</span> <span class='varop'>||</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'a'</span><span class='keyglyph'>..</span><span class='chr'>'z'</span><span class='keyglyph'>]</span>
+<a name="line-691"></a>	    <span class='keyglyph'>=</span> <span class='chr'>'/'</span> <span class='conop'>:</span> <span class='varid'>concatMap</span> <span class='varid'>win32ToUriChar</span> <span class='varid'>wd'</span>
+<a name="line-692"></a>    <span class='varid'>normalize</span> <span class='varid'>wd'</span>
+<a name="line-693"></a>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>wd'</span>
+<a name="line-694"></a>				 
+<a name="line-695"></a>    <span class='varid'>win32ToUriChar</span> <span class='chr'>'\\'</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span>
+<a name="line-696"></a>    <span class='varid'>win32ToUriChar</span> <span class='varid'>c</span>    <span class='keyglyph'>=</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>c</span>
+<a name="line-697"></a>
+<a name="line-698"></a>    <span class='varid'>escapeNonUriChar</span> <span class='varid'>c</span>  <span class='keyglyph'>=</span> <span class='varid'>escapeURIChar</span> <span class='varid'>isUnescapedInURI</span> <span class='varid'>c</span>   <span class='comment'>-- from Network.URI</span>
+<a name="line-699"></a>
+<a name="line-700"></a>
+<a name="line-701"></a><span class='comment'>-- | get the default base URI</span>
+<a name="line-702"></a>
+<a name="line-703"></a><a name="getDefaultBaseURI"></a><span class='definition'>getDefaultBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>
+<a name="line-704"></a><span class='definition'>getDefaultBaseURI</span>
+<a name="line-705"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_defaultBaseURI</span>		<span class='comment'>-- read default uri in system  state</span>
+<a name="line-706"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-707"></a>      <span class='layout'>(</span> <span class='varid'>setDefaultBaseURI</span> <span class='str'>""</span>			<span class='comment'>-- set the default uri in system state</span>
+<a name="line-708"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-709"></a>	<span class='varid'>getDefaultBaseURI</span> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isA</span> <span class='varid'>null</span>	<span class='comment'>-- when uri not yet set</span>
+<a name="line-710"></a>
+<a name="line-711"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-712"></a>
+<a name="line-713"></a><span class='comment'>-- | remember base uri, run an arrow and restore the base URI, used with external entity substitution</span>
+<a name="line-714"></a>
+<a name="line-715"></a><a name="runInLocalURIContext"></a><span class='definition'>runInLocalURIContext</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-716"></a><span class='definition'>runInLocalURIContext</span> <span class='varid'>f</span>
+<a name="line-717"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-718"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-719"></a>      <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>***</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='layout'>)</span>
+<a name="line-720"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-721"></a>      <span class='layout'>(</span> <span class='varid'>setBaseURI</span> <span class='varop'>***</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-722"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-723"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>
+<a name="line-724"></a>
+<a name="line-725"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-726"></a>
+<a name="line-727"></a><span class='comment'>-- | set the global trace level</span>
+<a name="line-728"></a>
+<a name="line-729"></a><a name="setTraceLevel"></a><span class='definition'>setTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-730"></a><span class='definition'>setTraceLevel</span> <span class='varid'>l</span>
+<a name="line-731"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span> <span class='keyglyph'>=</span> <span class='varid'>l</span> <span class='layout'>}</span> <span class='layout'>)</span>
+<a name="line-732"></a>
+<a name="line-733"></a><span class='comment'>-- | read the global trace level</span>
+<a name="line-734"></a>
+<a name="line-735"></a><a name="getTraceLevel"></a><span class='definition'>getTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>
+<a name="line-736"></a><span class='definition'>getTraceLevel</span>
+<a name="line-737"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_trace</span>
+<a name="line-738"></a>
+<a name="line-739"></a><span class='comment'>-- | run an arrow with a given trace level, the old trace level is restored after the arrow execution</span>
+<a name="line-740"></a>
+<a name="line-741"></a><a name="withTraceLevel"></a><span class='definition'>withTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-742"></a><span class='definition'>withTraceLevel</span> <span class='varid'>level</span> <span class='varid'>f</span>
+<a name="line-743"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>       <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-744"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-745"></a>      <span class='layout'>(</span> <span class='varid'>setTraceLevel</span> <span class='varid'>level</span> <span class='varop'>***</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='layout'>)</span>
+<a name="line-746"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-747"></a>      <span class='layout'>(</span> <span class='varid'>restoreTraceLevel</span>   <span class='varop'>***</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-748"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-749"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>
+<a name="line-750"></a>    <span class='keyword'>where</span>
+<a name="line-751"></a>    <span class='varid'>restoreTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>
+<a name="line-752"></a>    <span class='varid'>restoreTraceLevel</span>
+<a name="line-753"></a>	<span class='keyglyph'>=</span> <span class='varid'>setTraceLevel</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
+<a name="line-754"></a>
+<a name="line-755"></a><span class='comment'>-- | apply a trace arrow and issue message to stderr</span>
+<a name="line-756"></a>
+<a name="line-757"></a><a name="trace"></a><span class='definition'>trace</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-758"></a><span class='definition'>trace</span> <span class='varid'>level</span> <span class='varid'>trc</span>
+<a name="line-759"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trc</span>
+<a name="line-760"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-761"></a>		<span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-762"></a>				<span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='varid'>s</span>
+<a name="line-763"></a>				<span class='varid'>hFlush</span> <span class='varid'>stderr</span>
+<a name="line-764"></a>			      <span class='layout'>)</span>
+<a name="line-765"></a>		      <span class='layout'>)</span>
+<a name="line-766"></a>	      <span class='layout'>)</span>
+<a name="line-767"></a>      <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>
+<a name="line-768"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-769"></a>	       <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>&gt;=</span> <span class='varid'>level</span><span class='layout'>)</span>
+<a name="line-770"></a>	     <span class='layout'>)</span>
+<a name="line-771"></a>
+<a name="line-772"></a><span class='comment'>-- | trace the current value transfered in a sequence of arrows.</span>
+<a name="line-773"></a><span class='comment'>--</span>
+<a name="line-774"></a><span class='comment'>-- The value is formated by a string conversion function. This is a substitute for</span>
+<a name="line-775"></a><span class='comment'>-- the old and less general traceString function</span>
+<a name="line-776"></a>
+<a name="line-777"></a><a name="traceValue"></a><span class='definition'>traceValue</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-778"></a><span class='definition'>traceValue</span> <span class='varid'>level</span> <span class='varid'>trc</span>
+<a name="line-779"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='varid'>level</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='layout'>(</span><span class='chr'>'-'</span> <span class='conop'>:</span> <span class='str'>"- ("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>level</span> <span class='varop'>++</span> <span class='str'>") "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>trc</span><span class='layout'>)</span>
+<a name="line-780"></a>
+<a name="line-781"></a><span class='comment'>-- | an old alias for 'traceValue'</span>
+<a name="line-782"></a>
+<a name="line-783"></a><a name="traceString"></a><span class='definition'>traceString</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-784"></a><span class='definition'>traceString</span>		<span class='keyglyph'>=</span> <span class='varid'>traceValue</span>
+<a name="line-785"></a>
+<a name="line-786"></a><span class='comment'>-- | issue a string message as trace</span>
+<a name="line-787"></a>
+<a name="line-788"></a><a name="traceMsg"></a><span class='definition'>traceMsg</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-789"></a><span class='definition'>traceMsg</span> <span class='varid'>level</span> <span class='varid'>msg</span>
+<a name="line-790"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceValue</span> <span class='varid'>level</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>msg</span><span class='layout'>)</span>
+<a name="line-791"></a>
+<a name="line-792"></a><span class='comment'>-- | issue the source representation of a document if trace level &gt;= 3</span>
+<a name="line-793"></a><span class='comment'>--</span>
+<a name="line-794"></a><span class='comment'>-- for better readability the source is formated with indentDoc</span>
+<a name="line-795"></a>
+<a name="line-796"></a><a name="traceSource"></a><span class='definition'>traceSource</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-797"></a><span class='definition'>traceSource</span> 
+<a name="line-798"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>3</span> <span class='varop'>$</span>
+<a name="line-799"></a>      <span class='varid'>xshow</span>
+<a name="line-800"></a>      <span class='layout'>(</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>indentDoc</span>
+<a name="line-801"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-802"></a>			       <span class='varid'>getChildren</span>
+<a name="line-803"></a>			     <span class='layout'>)</span>
+<a name="line-804"></a>		<span class='layout'>,</span> <span class='varid'>isElem</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span>
+<a name="line-805"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentDoc</span>
+<a name="line-806"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span>
+<a name="line-807"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isElem</span>
+<a name="line-808"></a>			     <span class='layout'>)</span>
+<a name="line-809"></a>		<span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-810"></a>		<span class='keyglyph'>]</span>
+<a name="line-811"></a>      <span class='layout'>)</span>
+<a name="line-812"></a>
+<a name="line-813"></a><a name="traceTree"></a><span class='comment'>-- | issue the tree representation of a document if trace level &gt;= 4</span>
+<a name="line-814"></a><span class='definition'>traceTree</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-815"></a><span class='definition'>traceTree</span>
+<a name="line-816"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>4</span> <span class='varop'>$</span>
+<a name="line-817"></a>      <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-818"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-819"></a>	      <span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-820"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-821"></a>	      <span class='varid'>getChildren</span>
+<a name="line-822"></a>	    <span class='layout'>)</span>
+<a name="line-823"></a>
+<a name="line-824"></a><span class='comment'>-- | trace a main computation step</span>
+<a name="line-825"></a><span class='comment'>-- issue a message when trace level &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 4</span>
+<a name="line-826"></a>
+<a name="line-827"></a><a name="traceDoc"></a><span class='definition'>traceDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-828"></a><span class='definition'>traceDoc</span> <span class='varid'>msg</span>
+<a name="line-829"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='varid'>msg</span>
+<a name="line-830"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-831"></a>      <span class='varid'>traceSource</span>
+<a name="line-832"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-833"></a>      <span class='varid'>traceTree</span>
+<a name="line-834"></a>
+<a name="line-835"></a><span class='comment'>-- | trace the global state</span>
+<a name="line-836"></a>
+<a name="line-837"></a><a name="traceState"></a><span class='definition'>traceState</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-838"></a><span class='definition'>traceState</span>
+<a name="line-839"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAllParams</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>concat</span><span class='layout'>)</span>
+<a name="line-840"></a>			<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-841"></a>			<span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>formatParam</span><span class='layout'>)</span>
+<a name="line-842"></a>		      <span class='layout'>)</span>
+<a name="line-843"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-844"></a>		<span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"global state:\n"</span> <span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-845"></a>	      <span class='layout'>)</span>
+<a name="line-846"></a>      <span class='keyword'>where</span>
+<a name="line-847"></a>      <span class='comment'>-- formatParam	:: (String, XmlTrees) -&gt; IOStateArrow s b1 XmlTree</span>
+<a name="line-848"></a>      <span class='varid'>formatParam</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-849"></a>	  <span class='keyglyph'>=</span> <span class='varid'>mkelem</span> <span class='str'>"param"</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='str'>"name"</span> <span class='varid'>n</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span>
+<a name="line-850"></a>
+<a name="line-851"></a><span class='comment'>-- ----------------------------------------------------------</span>
+<a name="line-852"></a>
+<a name="line-853"></a><span class='comment'>-- | compute the absolut URI for a given URI and a base URI</span>
+<a name="line-854"></a>
+<a name="line-855"></a><a name="expandURIString"></a><span class='definition'>expandURIString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-856"></a><span class='definition'>expandURIString</span> <span class='varid'>uri</span> <span class='varid'>base</span>
+<a name="line-857"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-858"></a>      <span class='varid'>base'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>
+<a name="line-859"></a>      <span class='varid'>uri'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>
+<a name="line-860"></a>      <span class='varid'>abs'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>nonStrictRelativeTo</span> <span class='varid'>uri'</span> <span class='varid'>base'</span>
+<a name="line-861"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>show</span> <span class='varid'>abs'</span>
+<a name="line-862"></a>
+<a name="line-863"></a><span class='comment'>-- | arrow variant of 'expandURIString', fails if 'expandURIString' returns Nothing</span>
+<a name="line-864"></a>
+<a name="line-865"></a><a name="expandURI"></a><span class='definition'>expandURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>String</span>
+<a name="line-866"></a><span class='definition'>expandURI</span>
+<a name="line-867"></a>    <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>uncurry</span> <span class='varid'>expandURIString</span><span class='layout'>)</span>
+<a name="line-868"></a>
+<a name="line-869"></a><span class='comment'>-- | arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI</span>
+<a name="line-870"></a>
+<a name="line-871"></a><a name="mkAbsURI"></a><span class='definition'>mkAbsURI</span>		<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-872"></a><span class='definition'>mkAbsURI</span>
+<a name="line-873"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>expandURI</span>
+<a name="line-874"></a>
+<a name="line-875"></a><span class='comment'>-- | arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.</span>
+<a name="line-876"></a><span class='comment'>--</span>
+<a name="line-877"></a><span class='comment'>-- See Network.URI for URI components</span>
+<a name="line-878"></a>
+<a name="line-879"></a><a name="getSchemeFromURI"></a><span class='definition'>getSchemeFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-880"></a><span class='definition'>getSchemeFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>scheme</span>
+<a name="line-881"></a>    <span class='keyword'>where</span>
+<a name="line-882"></a>    <span class='varid'>scheme</span> <span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varop'>.</span> <span class='varid'>uriScheme</span>
+<a name="line-883"></a>
+<a name="line-884"></a><span class='comment'>-- | arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI</span>
+<a name="line-885"></a>
+<a name="line-886"></a><a name="getRegNameFromURI"></a><span class='definition'>getRegNameFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-887"></a><span class='definition'>getRegNameFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>host</span>
+<a name="line-888"></a>    <span class='keyword'>where</span>
+<a name="line-889"></a>    <span class='varid'>host</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriRegName</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>
+<a name="line-890"></a>
+<a name="line-891"></a><span class='comment'>-- | arrow for selecting the port number of the URI without leading \':\', fails if input is not a legal URI</span>
+<a name="line-892"></a>
+<a name="line-893"></a><a name="getPortFromURI"></a><span class='definition'>getPortFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-894"></a><span class='definition'>getPortFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>port</span>
+<a name="line-895"></a>    <span class='keyword'>where</span>
+<a name="line-896"></a>    <span class='varid'>port</span> <span class='keyglyph'>=</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span><span class='chr'>':'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriPort</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>
+<a name="line-897"></a>
+<a name="line-898"></a><span class='comment'>-- | arrow for selecting the user info of the URI without trailing \'\@\', fails if input is not a legal URI</span>
+<a name="line-899"></a>
+<a name="line-900"></a><a name="getUserInfoFromURI"></a><span class='definition'>getUserInfoFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-901"></a><span class='definition'>getUserInfoFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>ui</span>
+<a name="line-902"></a>    <span class='keyword'>where</span>
+<a name="line-903"></a>    <span class='varid'>ui</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span><span class='chr'>'@'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriUserInfo</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>
+<a name="line-904"></a>
+<a name="line-905"></a><span class='comment'>-- | arrow for computing the path component of an URI, fails if input is not a legal URI</span>
+<a name="line-906"></a>
+<a name="line-907"></a><a name="getPathFromURI"></a><span class='definition'>getPathFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-908"></a><span class='definition'>getPathFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriPath</span>
+<a name="line-909"></a>
+<a name="line-910"></a><span class='comment'>-- | arrow for computing the query component of an URI, fails if input is not a legal URI</span>
+<a name="line-911"></a>
+<a name="line-912"></a><a name="getQueryFromURI"></a><span class='definition'>getQueryFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-913"></a><span class='definition'>getQueryFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriQuery</span>
+<a name="line-914"></a>
+<a name="line-915"></a><span class='comment'>-- | arrow for computing the fragment component of an URI, fails if input is not a legal URI</span>
+<a name="line-916"></a>
+<a name="line-917"></a><a name="getFragmentFromURI"></a><span class='definition'>getFragmentFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-918"></a><span class='definition'>getFragmentFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriFragment</span>
+<a name="line-919"></a>
+<a name="line-920"></a><span class='comment'>-- | arrow for computing the path component of an URI, fails if input is not a legal URI</span>
+<a name="line-921"></a>
+<a name="line-922"></a><a name="getPartFromURI"></a><span class='definition'>getPartFromURI</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-923"></a><span class='definition'>getPartFromURI</span> <span class='varid'>sel</span>
+<a name="line-924"></a>    <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>getPart</span><span class='layout'>)</span>
+<a name="line-925"></a>      <span class='keyword'>where</span>
+<a name="line-926"></a>      <span class='varid'>getPart</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-927"></a>		  <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>s</span>
+<a name="line-928"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>sel</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-929"></a>
+<a name="line-930"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-931"></a>
+<a name="line-932"></a><span class='comment'>-- | set the table mapping of file extensions to mime types in the system state</span>
+<a name="line-933"></a><span class='comment'>--</span>
+<a name="line-934"></a><span class='comment'>-- Default table is defined in 'Text.XML.HXT.DOM.MimeTypeDefaults'.</span>
+<a name="line-935"></a><span class='comment'>-- This table is used when reading loacl files, (file: protocol) to determine the mime type</span>
+<a name="line-936"></a>
+<a name="line-937"></a><a name="setMimeTypeTable"></a><span class='definition'>setMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-938"></a><span class='definition'>setMimeTypeTable</span> <span class='varid'>mtt</span>
+<a name="line-939"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>xio_mimeTypes</span> <span class='keyglyph'>=</span> <span class='varid'>mtt</span><span class='layout'>}</span><span class='layout'>)</span>
+<a name="line-940"></a>
+<a name="line-941"></a><span class='comment'>-- | set the table mapping of file extensions to mime types by an external config file</span>
+<a name="line-942"></a><span class='comment'>--</span>
+<a name="line-943"></a><span class='comment'>-- The config file must follow the conventions of /etc/mime.types on a debian linux system,</span>
+<a name="line-944"></a><span class='comment'>-- that means all empty lines and all lines starting with a # are ignored. The other lines</span>
+<a name="line-945"></a><span class='comment'>-- must consist of a mime type followed by a possible empty list of extensions.</span>
+<a name="line-946"></a><span class='comment'>-- The list of extenstions and mime types overwrites the default list in the system state</span>
+<a name="line-947"></a><span class='comment'>-- of the IOStateArrow</span>
+<a name="line-948"></a>
+<a name="line-949"></a><a name="setMimeTypeTableFromFile"></a><span class='definition'>setMimeTypeTableFromFile</span>	<span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-950"></a><span class='definition'>setMimeTypeTableFromFile</span> <span class='varid'>file</span>
+<a name="line-951"></a>    <span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTable</span> <span class='varop'>$&lt;</span> <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='varid'>readMimeTypeTable</span> <span class='varid'>file</span><span class='layout'>)</span>
+<a name="line-952"></a>
+<a name="line-953"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-Interface.html b/doc/hdoc/src/Text-XML-HXT-DOM-Interface.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-Interface.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-Interface.html
@@ -28,21 +28,19 @@
 <a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
 <a name="line-21"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
 <a name="line-22"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-23"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</span>
-<a name="line-24"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
-<a name="line-25"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>
-<a name="line-26"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>
-<a name="line-27"></a>    <span class='layout'>)</span>
-<a name="line-28"></a><span class='keyword'>where</span>
-<a name="line-29"></a>
-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>		<span class='comment'>-- constants</span>
-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>		<span class='comment'>-- XML Tree types</span>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</span>
-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>		<span class='comment'>-- predefined options</span>
-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>		<span class='comment'>-- mime types related stuff</span>
-<a name="line-36"></a>
-<a name="line-37"></a>
-<a name="line-38"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>
+<a name="line-26"></a>    <span class='layout'>)</span>
+<a name="line-27"></a><span class='keyword'>where</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>		<span class='comment'>-- constants</span>
+<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>		<span class='comment'>-- XML Tree types</span>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>		<span class='comment'>-- predefined options</span>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>		<span class='comment'>-- mime types related stuff</span>
+<a name="line-34"></a>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-MimeTypes.html b/doc/hdoc/src/Text-XML-HXT-DOM-MimeTypes.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-MimeTypes.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-MimeTypes.html
@@ -26,98 +26,100 @@
 <a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>
 <a name="line-19"></a><span class='keyword'>where</span>
 <a name="line-20"></a>
-<a name="line-21"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span> <span class='layout'>(</span><span class='varid'>mplus</span><span class='layout'>)</span>
+<a name="line-21"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>		<span class='layout'>(</span> <span class='varid'>mplus</span> <span class='layout'>)</span>
 <a name="line-22"></a>
-<a name="line-23"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
-<a name="line-24"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>
-<a name="line-26"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-27"></a>
-<a name="line-28"></a><span class='keyword'>import</span>           <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
-<a name="line-29"></a>
-<a name="line-30"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypeDefaults</span>
-<a name="line-31"></a>
-<a name="line-32"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-33"></a>
-<a name="line-34"></a><a name="MimeTypeTable"></a><span class='keyword'>type</span> <span class='conid'>MimeTypeTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-35"></a>
-<a name="line-36"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-37"></a>
-<a name="line-38"></a><span class='comment'>-- mime types</span>
-<a name="line-39"></a><span class='comment'>--</span>
-<a name="line-40"></a><span class='comment'>-- see RFC \"http:\/\/www.rfc-editor.org\/rfc\/rfc3023.txt\"</span>
-<a name="line-41"></a>
-<a name="line-42"></a><a name="application_xhtml"></a><span class='definition'>application_xhtml</span><span class='layout'>,</span>
-<a name="line-43"></a> <span class='varid'>application_xml</span><span class='layout'>,</span>
-<a name="line-44"></a> <span class='varid'>application_xml_external_parsed_entity</span><span class='layout'>,</span>
-<a name="line-45"></a> <span class='varid'>application_xml_dtd</span><span class='layout'>,</span>
-<a name="line-46"></a> <span class='varid'>text_html</span><span class='layout'>,</span>
-<a name="line-47"></a> <span class='varid'>text_xml</span><span class='layout'>,</span>
-<a name="line-48"></a> <span class='varid'>text_xml_external_parsed_entity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-49"></a>
-<a name="line-50"></a><span class='definition'>application_xhtml</span>			<span class='keyglyph'>=</span> <span class='str'>"application/xhtml+xml"</span>
-<a name="line-51"></a><a name="application_xml"></a><span class='definition'>application_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"application/xml"</span>
-<a name="line-52"></a><a name="application_xml_external_parsed_entity"></a><span class='definition'>application_xml_external_parsed_entity</span>	<span class='keyglyph'>=</span> <span class='str'>"application/xml-external-parsed-entity"</span>
-<a name="line-53"></a><a name="application_xml_dtd"></a><span class='definition'>application_xml_dtd</span>			<span class='keyglyph'>=</span> <span class='str'>"application/xml-dtd"</span>
-<a name="line-54"></a>
-<a name="line-55"></a><a name="text_html"></a><span class='definition'>text_html</span>				<span class='keyglyph'>=</span> <span class='str'>"text/html"</span>
-<a name="line-56"></a><a name="text_xml"></a><span class='definition'>text_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"text/xml"</span>
-<a name="line-57"></a><a name="text_xml_external_parsed_entity"></a><span class='definition'>text_xml_external_parsed_entity</span>		<span class='keyglyph'>=</span> <span class='str'>"text/xml-external-parsed-entity"</span>
-<a name="line-58"></a>
-<a name="line-59"></a><a name="isHtmlMimeType"></a><span class='definition'>isHtmlMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-60"></a><span class='definition'>isHtmlMimeType</span> <span class='varid'>t</span>
-<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>text_html</span>
-<a name="line-62"></a>
-<a name="line-63"></a><a name="isXmlMimeType"></a><span class='definition'>isXmlMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-64"></a><span class='definition'>isXmlMimeType</span> <span class='varid'>t</span>
-<a name="line-65"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span> <span class='varid'>application_xhtml</span>
-<a name="line-66"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml</span>
-<a name="line-67"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml_external_parsed_entity</span>
-<a name="line-68"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml_dtd</span>
-<a name="line-69"></a>		 <span class='layout'>,</span> <span class='varid'>text_xml</span>
-<a name="line-70"></a>		 <span class='layout'>,</span> <span class='varid'>text_xml_external_parsed_entity</span>
-<a name="line-71"></a>		 <span class='keyglyph'>]</span>
-<a name="line-72"></a>	<span class='varop'>||</span>
-<a name="line-73"></a>	<span class='str'>"+xml"</span> <span class='varop'>`isSuffixOf`</span> <span class='varid'>t</span>		<span class='comment'>-- application/mathml+xml</span>
-<a name="line-74"></a>      <span class='layout'>)</span>					<span class='comment'>-- or image/svg+xml</span>
-<a name="line-75"></a>
-<a name="line-76"></a><a name="defaultMimeTypeTable"></a><span class='definition'>defaultMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span>
-<a name="line-77"></a><span class='definition'>defaultMimeTypeTable</span>
-<a name="line-78"></a>    <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varid'>mimeTypeDefaults</span>
-<a name="line-79"></a>
-<a name="line-80"></a><a name="extensionToMimeType"></a><span class='definition'>extensionToMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-81"></a><span class='definition'>extensionToMimeType</span> <span class='varid'>e</span>
-<a name="line-82"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookupMime</span> 
-<a name="line-83"></a>    <span class='keyword'>where</span>
-<a name="line-84"></a>    <span class='varid'>lookupMime</span> <span class='varid'>t</span>
-<a name="line-85"></a>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>e</span> <span class='varid'>t</span>			<span class='comment'>-- try exact match</span>
-<a name="line-86"></a>	  <span class='varop'>`mplus`</span>
-<a name="line-87"></a>	  <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>t</span>	<span class='comment'>-- else try lowercase match</span>
-<a name="line-88"></a>          <span class='varop'>`mplus`</span>
-<a name="line-89"></a>	  <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>t</span>	<span class='comment'>-- else try uppercase match</span>
-<a name="line-90"></a>
-<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-92"></a>
-<a name="line-93"></a><a name="readMimeTypeTable"></a><span class='definition'>readMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>MimeTypeTable</span>
-<a name="line-94"></a><span class='definition'>readMimeTypeTable</span> <span class='varid'>inp</span>
-<a name="line-95"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-96"></a>      <span class='varid'>h</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>inp</span> <span class='conid'>ReadMode</span>
-<a name="line-97"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hGetContents</span> <span class='varid'>h</span>
-<a name="line-98"></a>      <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>parseMimeTypeTable</span> <span class='varop'>$</span> <span class='varid'>c</span>
-<a name="line-99"></a>
-<a name="line-100"></a><a name="parseMimeTypeTable"></a><span class='definition'>parseMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-101"></a><span class='definition'>parseMimeTypeTable</span>
-<a name="line-102"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span>
-<a name="line-103"></a>      <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>buildPairs</span>
-<a name="line-104"></a>      <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>words</span>
-<a name="line-105"></a>      <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"#"</span> <span class='varop'>`isPrefixOf`</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-106"></a>      <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varid'>isSpace</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-107"></a>      <span class='varop'>.</span> <span class='varid'>lines</span>
-<a name="line-108"></a>    <span class='keyword'>where</span>
-<a name="line-109"></a>    <span class='varid'>buildPairs</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-110"></a>    <span class='varid'>buildPairs</span>	<span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-111"></a>    <span class='varid'>buildPairs</span>	<span class='layout'>(</span><span class='varid'>mt</span><span class='conop'>:</span><span class='varid'>exts</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>mt</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>exts</span>
-<a name="line-112"></a>
-<a name="line-113"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span>	<span class='keyword'>as</span> <span class='conid'>B</span>
+<a name="line-24"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span><span class='varop'>.</span><span class='conid'>Char8</span>  <span class='keyword'>as</span> <span class='conid'>C</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-27"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span>		<span class='keyword'>as</span> <span class='conid'>M</span>
+<a name="line-29"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='keyword'>import</span>           <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypeDefaults</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="MimeTypeTable"></a><span class='keyword'>type</span> <span class='conid'>MimeTypeTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-40"></a>
+<a name="line-41"></a><span class='comment'>-- mime types</span>
+<a name="line-42"></a><span class='comment'>--</span>
+<a name="line-43"></a><span class='comment'>-- see RFC \"http:\/\/www.rfc-editor.org\/rfc\/rfc3023.txt\"</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="application_xhtml"></a><span class='definition'>application_xhtml</span><span class='layout'>,</span>
+<a name="line-46"></a> <span class='varid'>application_xml</span><span class='layout'>,</span>
+<a name="line-47"></a> <span class='varid'>application_xml_external_parsed_entity</span><span class='layout'>,</span>
+<a name="line-48"></a> <span class='varid'>application_xml_dtd</span><span class='layout'>,</span>
+<a name="line-49"></a> <span class='varid'>text_html</span><span class='layout'>,</span>
+<a name="line-50"></a> <span class='varid'>text_xml</span><span class='layout'>,</span>
+<a name="line-51"></a> <span class='varid'>text_xml_external_parsed_entity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='definition'>application_xhtml</span>			<span class='keyglyph'>=</span> <span class='str'>"application/xhtml+xml"</span>
+<a name="line-54"></a><a name="application_xml"></a><span class='definition'>application_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"application/xml"</span>
+<a name="line-55"></a><a name="application_xml_external_parsed_entity"></a><span class='definition'>application_xml_external_parsed_entity</span>	<span class='keyglyph'>=</span> <span class='str'>"application/xml-external-parsed-entity"</span>
+<a name="line-56"></a><a name="application_xml_dtd"></a><span class='definition'>application_xml_dtd</span>			<span class='keyglyph'>=</span> <span class='str'>"application/xml-dtd"</span>
+<a name="line-57"></a>
+<a name="line-58"></a><a name="text_html"></a><span class='definition'>text_html</span>				<span class='keyglyph'>=</span> <span class='str'>"text/html"</span>
+<a name="line-59"></a><a name="text_xml"></a><span class='definition'>text_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"text/xml"</span>
+<a name="line-60"></a><a name="text_xml_external_parsed_entity"></a><span class='definition'>text_xml_external_parsed_entity</span>		<span class='keyglyph'>=</span> <span class='str'>"text/xml-external-parsed-entity"</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="isHtmlMimeType"></a><span class='definition'>isHtmlMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-63"></a><span class='definition'>isHtmlMimeType</span> <span class='varid'>t</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>text_html</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="isXmlMimeType"></a><span class='definition'>isXmlMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-67"></a><span class='definition'>isXmlMimeType</span> <span class='varid'>t</span>
+<a name="line-68"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span> <span class='varid'>application_xhtml</span>
+<a name="line-69"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml</span>
+<a name="line-70"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml_external_parsed_entity</span>
+<a name="line-71"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml_dtd</span>
+<a name="line-72"></a>		 <span class='layout'>,</span> <span class='varid'>text_xml</span>
+<a name="line-73"></a>		 <span class='layout'>,</span> <span class='varid'>text_xml_external_parsed_entity</span>
+<a name="line-74"></a>		 <span class='keyglyph'>]</span>
+<a name="line-75"></a>	<span class='varop'>||</span>
+<a name="line-76"></a>	<span class='str'>"+xml"</span> <span class='varop'>`isSuffixOf`</span> <span class='varid'>t</span>		<span class='comment'>-- application/mathml+xml</span>
+<a name="line-77"></a>      <span class='layout'>)</span>					<span class='comment'>-- or image/svg+xml</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="defaultMimeTypeTable"></a><span class='definition'>defaultMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span>
+<a name="line-80"></a><span class='definition'>defaultMimeTypeTable</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varid'>mimeTypeDefaults</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="extensionToMimeType"></a><span class='definition'>extensionToMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-84"></a><span class='definition'>extensionToMimeType</span> <span class='varid'>e</span>
+<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookupMime</span> 
+<a name="line-86"></a>    <span class='keyword'>where</span>
+<a name="line-87"></a>    <span class='varid'>lookupMime</span> <span class='varid'>t</span>
+<a name="line-88"></a>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>e</span> <span class='varid'>t</span>			<span class='comment'>-- try exact match</span>
+<a name="line-89"></a>	  <span class='varop'>`mplus`</span>
+<a name="line-90"></a>	  <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>t</span>	<span class='comment'>-- else try lowercase match</span>
+<a name="line-91"></a>          <span class='varop'>`mplus`</span>
+<a name="line-92"></a>	  <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>t</span>	<span class='comment'>-- else try uppercase match</span>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="readMimeTypeTable"></a><span class='definition'>readMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>MimeTypeTable</span>
+<a name="line-97"></a><span class='definition'>readMimeTypeTable</span> <span class='varid'>inp</span>
+<a name="line-98"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-99"></a>      <span class='varid'>cb</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>B</span><span class='varop'>.</span><span class='varid'>readFile</span> <span class='varid'>inp</span>
+<a name="line-100"></a>      <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>parseMimeTypeTable</span> <span class='varop'>.</span> <span class='conid'>C</span><span class='varop'>.</span><span class='varid'>unpack</span> <span class='varop'>$</span> <span class='varid'>cb</span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="parseMimeTypeTable"></a><span class='definition'>parseMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-103"></a><span class='definition'>parseMimeTypeTable</span>
+<a name="line-104"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span>
+<a name="line-105"></a>      <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>buildPairs</span>
+<a name="line-106"></a>      <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>words</span>
+<a name="line-107"></a>      <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"#"</span> <span class='varop'>`isPrefixOf`</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-108"></a>      <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varid'>isSpace</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-109"></a>      <span class='varop'>.</span> <span class='varid'>lines</span>
+<a name="line-110"></a>    <span class='keyword'>where</span>
+<a name="line-111"></a>    <span class='varid'>buildPairs</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-112"></a>    <span class='varid'>buildPairs</span>	<span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-113"></a>    <span class='varid'>buildPairs</span>	<span class='layout'>(</span><span class='varid'>mt</span><span class='conop'>:</span><span class='varid'>exts</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>mt</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>exts</span>
+<a name="line-114"></a>
+<a name="line-115"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc/src/Text-XML-HXT-DOM-NamespacePredicates.html
deleted file mode 100644
--- a/doc/hdoc/src/Text-XML-HXT-DOM-NamespacePredicates.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
-<title>Haskell Code by HsColour</title>
-<link type='text/css' rel='stylesheet' href='hscolour.css' />
-</head>
-<body>
-<pre><a name="line-1"></a><span class='comment'>-- |</span>
-<a name="line-2"></a><span class='comment'>-- basic Namespace and QName predicates and functions</span>
-<a name="line-3"></a><span class='comment'>--</span>
-<a name="line-4"></a><span class='comment'>-- $Id: NamespacePredicates.hs,v 1.3 2006/11/12 14:53:00 hxml Exp $</span>
-<a name="line-5"></a><span class='comment'>--</span>
-<a name="line-6"></a>
-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</span>
-<a name="line-8"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</span>
-<a name="line-9"></a>    <span class='layout'>)</span>
-<a name="line-10"></a><span class='keyword'>where</span>
-<a name="line-11"></a>
-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlTreeTypes</span>		<span class='comment'>-- NTree and XNode types</span>
-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>		<span class='comment'>-- keywords for DTD</span>
-<a name="line-14"></a>
-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
-<a name="line-16"></a>    <span class='layout'>(</span> <span class='varid'>isXmlNCNameStartChar</span>
-<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>
-<a name="line-18"></a>    <span class='layout'>)</span>
-<a name="line-19"></a>
-<a name="line-20"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-21"></a><span class='comment'>--</span>
-<a name="line-22"></a>
-<a name="line-23"></a><span class='comment'>-- |</span>
-<a name="line-24"></a><span class='comment'>-- Compute the name prefix and the namespace uri for a qualified name.</span>
-<a name="line-25"></a><span class='comment'>--</span>
-<a name="line-26"></a><span class='comment'>-- This function does not test whether the name is a wellformed qualified name.</span>
-<a name="line-27"></a><span class='comment'>-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,</span>
-<a name="line-28"></a><span class='comment'>-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.</span>
-<a name="line-29"></a>
-<a name="line-30"></a><a name="setNamespace"></a><span class='definition'>setNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-31"></a><span class='definition'>setNamespace</span> <span class='varid'>nst</span> <span class='varid'>n</span>
-<a name="line-32"></a>    <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='varid'>ns</span> <span class='varop'>.</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>qn</span>
-<a name="line-33"></a>    <span class='keyword'>where</span>
-<a name="line-34"></a>    <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>	<span class='comment'>-- using qualifiedName instead of localPart enables recomputing of setNamespace</span>
-<a name="line-35"></a>
-<a name="line-36"></a>    <span class='varid'>ns</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-37"></a>    <span class='varid'>ns</span> <span class='varid'>lp</span> <span class='str'>""</span>					<span class='comment'>-- no ":" found in name, use default namespace uri</span>
-<a name="line-38"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='str'>""</span> <span class='varid'>nst</span><span class='layout'>)</span>
-<a name="line-39"></a>
-<a name="line-40"></a>    <span class='varid'>ns</span> <span class='varid'>px</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='comment'>-- non empty prefix and non empty local part found</span>
-<a name="line-41"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='varid'>px</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>px</span> <span class='varid'>nst</span><span class='layout'>)</span>
-<a name="line-42"></a>
-<a name="line-43"></a>    <span class='varid'>ns</span> <span class='keyword'>_</span> <span class='keyword'>_</span>					<span class='comment'>-- not a legal qualified name, don't change name</span>
-<a name="line-44"></a>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
-<a name="line-45"></a>
-<a name="line-46"></a><a name="xmlnsQN"></a><span class='definition'>xmlnsQN</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
-<a name="line-47"></a><span class='definition'>xmlnsQN</span>	<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>a_xmlns</span> <span class='varid'>xmlnsNamespace</span>
-<a name="line-48"></a>
-<a name="line-49"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-50"></a><span class='comment'>--</span>
-<a name="line-51"></a>
-<a name="line-52"></a><span class='comment'>-- |</span>
-<a name="line-53"></a><span class='comment'>-- test for wellformed NCName, rule [4] XML Namespaces</span>
-<a name="line-54"></a>
-<a name="line-55"></a><a name="isNCName"></a><span class='definition'>isNCName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-56"></a><span class='definition'>isNCName</span> <span class='conid'>[]</span>
-<a name="line-57"></a>    <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-58"></a><span class='definition'>isNCName</span> <span class='varid'>n</span>
-<a name="line-59"></a>    <span class='keyglyph'>=</span> <span class='varid'>and</span> <span class='layout'>(</span> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='varop'>$</span><span class='layout'>)</span>
-<a name="line-60"></a>	    <span class='layout'>(</span><span class='varid'>isXmlNCNameStartChar</span> <span class='conop'>:</span> <span class='varid'>repeat</span> <span class='varid'>isXmlNCNameChar</span><span class='layout'>)</span>
-<a name="line-61"></a>	    <span class='varid'>n</span>
-<a name="line-62"></a>	  <span class='layout'>)</span>
-<a name="line-63"></a>
-<a name="line-64"></a><span class='comment'>-- |</span>
-<a name="line-65"></a><span class='comment'>-- test for wellformed QName, rule [6] XML Namespaces</span>
-<a name="line-66"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
-<a name="line-67"></a>
-<a name="line-68"></a><a name="isWellformedQualifiedName"></a><span class='definition'>isWellformedQualifiedName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-69"></a><span class='definition'>isWellformedQualifiedName</span> <span class='varid'>s</span>
-<a name="line-70"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>lp</span>
-<a name="line-71"></a>	<span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span>
-<a name="line-72"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-73"></a>	<span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNCName</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>lp</span><span class='layout'>)</span>
-<a name="line-74"></a>    <span class='keyword'>where</span>
-<a name="line-75"></a>    <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-76"></a>
-<a name="line-77"></a><span class='comment'>-- |</span>
-<a name="line-78"></a><span class='comment'>-- test for wellformed QName values.</span>
-<a name="line-79"></a><span class='comment'>-- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.</span>
-<a name="line-80"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
-<a name="line-81"></a>
-<a name="line-82"></a><a name="isWellformedQName"></a><span class='definition'>isWellformedQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-83"></a><span class='definition'>isWellformedQName</span> <span class='varid'>n</span>
-<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>lp</span>				<span class='comment'>-- rule [8] XML Namespaces</span>
-<a name="line-85"></a>      <span class='varop'>&amp;&amp;</span>
-<a name="line-86"></a>      <span class='layout'>(</span> <span class='varid'>null</span> <span class='varid'>px</span>					<span class='comment'>-- rule [6] XML Namespaces</span>
-<a name="line-87"></a>	<span class='varop'>||</span>
-<a name="line-88"></a>	<span class='varid'>isNCName</span> <span class='varid'>px</span>				<span class='comment'>-- rule [7] XML Namespaces</span>
-<a name="line-89"></a>      <span class='layout'>)</span>
-<a name="line-90"></a>    <span class='keyword'>where</span>
-<a name="line-91"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>
-<a name="line-92"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>n</span>
-<a name="line-93"></a>
-<a name="line-94"></a><span class='comment'>-- |</span>
-<a name="line-95"></a><span class='comment'>-- test for a wellformed namespace declaration</span>
-<a name="line-96"></a><span class='comment'>-- all namespace prefixes starting with \"xml\" are reserved for XML related definitions.</span>
-<a name="line-97"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
-<a name="line-98"></a>
-<a name="line-99"></a><a name="isWellformedNSDecl"></a><span class='definition'>isWellformedNSDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-100"></a><span class='definition'>isWellformedNSDecl</span> <span class='varid'>n</span>
-<a name="line-101"></a>    <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>px</span>
-<a name="line-102"></a>      <span class='varop'>||</span>
-<a name="line-103"></a>      <span class='varid'>px</span> <span class='varop'>/=</span> <span class='varid'>a_xmlns</span>
-<a name="line-104"></a>      <span class='varop'>||</span>
-<a name="line-105"></a>      <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>3</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='varop'>/=</span> <span class='varid'>a_xml</span>
-<a name="line-106"></a>    <span class='keyword'>where</span>
-<a name="line-107"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>  <span class='varid'>n</span>
-<a name="line-108"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>
-<a name="line-109"></a>
-<a name="line-110"></a><span class='comment'>-- |</span>
-<a name="line-111"></a><span class='comment'>-- </span>
-<a name="line-112"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
-<a name="line-113"></a>
-<a name="line-114"></a><a name="isDeclaredNamespace"></a><span class='definition'>isDeclaredNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-115"></a><span class='definition'>isDeclaredNamespace</span> <span class='varid'>n</span>
-<a name="line-116"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span>					<span class='comment'>-- no namespace used</span>
-<a name="line-117"></a>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-118"></a>    <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>				<span class='comment'>-- "xmlns" has a predefined namespace uri</span>
-<a name="line-119"></a>	<span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlnsNamespace</span>
-<a name="line-120"></a>    <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xml</span>				<span class='comment'>-- "xml" has a predefiend namespace"</span>
-<a name="line-121"></a>	<span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlNamespace</span>
-<a name="line-122"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>					<span class='comment'>-- namespace values are not empty</span>
-<a name="line-123"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>ns</span>
-<a name="line-124"></a>    <span class='keyword'>where</span>
-<a name="line-125"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span>   <span class='varid'>n</span>
-<a name="line-126"></a>    <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
-<a name="line-127"></a>
-<a name="line-128"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-</pre></body>
-</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html
@@ -24,201 +24,524 @@
 <a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-17"></a>
 <a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>
-<a name="line-19"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>
-<a name="line-20"></a>    <span class='layout'>)</span>
-<a name="line-21"></a>
-<a name="line-22"></a><span class='keyword'>where</span>
-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>
-<a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>		<span class='layout'>(</span><span class='varid'>toLower</span><span class='layout'>)</span>
-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>
-<a name="line-27"></a>
-<a name="line-28"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-29"></a><span class='comment'>--</span>
-<a name="line-30"></a><span class='comment'>-- |</span>
-<a name="line-31"></a><span class='comment'>-- Namespace support for element and attribute names.</span>
-<a name="line-32"></a><span class='comment'>--</span>
-<a name="line-33"></a><span class='comment'>-- A qualified name consists of a name prefix, a local name</span>
-<a name="line-34"></a><span class='comment'>-- and a namespace uri.</span>
-<a name="line-35"></a><span class='comment'>-- All modules, which are not namespace aware, use only the 'localPart' component.</span>
-<a name="line-36"></a><span class='comment'>-- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"</span>
-<a name="line-37"></a><span class='comment'>-- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri</span>
-<a name="line-38"></a>
-<a name="line-39"></a><a name="QName"></a><span class='keyword'>data</span> <span class='conid'>QName</span> <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>	<span class='comment'>-- ^ the name prefix part of a qualified name \"namePrefix:localPart\"</span>
-<a name="line-40"></a>		<span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>	<span class='comment'>-- ^ the local part of a qualified name \"namePrefix:localPart\"</span>
-<a name="line-41"></a>		<span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>	<span class='comment'>-- ^ the associated namespace uri</span>
-<a name="line-42"></a>		<span class='layout'>}</span>
-<a name="line-43"></a>	     <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Read</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>
-<a name="line-44"></a>
-<a name="line-45"></a><span class='comment'>-- | Two QNames are equal if (1. case) namespaces are both empty and the qualified names</span>
-<a name="line-46"></a><span class='comment'>-- (prefix:localpart) are the same or (2. case) namespaces are set and namespaces and</span>
-<a name="line-47"></a><span class='comment'>-- local parts both are equal</span>
-<a name="line-48"></a>    
-<a name="line-49"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>QName</span> <span class='keyword'>where</span>
-<a name="line-50"></a>    <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>q2</span>
-<a name="line-51"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>null</span> <span class='varid'>ns2</span>
-<a name="line-52"></a>	    <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>q2</span>
-<a name="line-53"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-54"></a>	    <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>q2</span>
-<a name="line-55"></a>	      <span class='varop'>&amp;&amp;</span>
-<a name="line-56"></a>	      <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>ns2</span>
-<a name="line-57"></a>	<span class='keyword'>where</span>
-<a name="line-58"></a>	<span class='varid'>ns1</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>q1</span>
-<a name="line-59"></a>	<span class='varid'>ns2</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>q2</span>
-<a name="line-60"></a>
-<a name="line-61"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>QName</span> <span class='keyword'>where</span>
-<a name="line-62"></a>    <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>QN</span> <span class='varid'>np</span> <span class='varid'>lp</span> <span class='varid'>ns</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>np</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>lp</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>ns</span>
-<a name="line-63"></a>
-<a name="line-64"></a>
-<a name="line-65"></a><span class='comment'>-- just for adding the module to the lib</span>
-<a name="line-66"></a><span class='comment'>-- |</span>
-<a name="line-67"></a><span class='comment'>-- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result</span>
-<a name="line-68"></a>
-<a name="line-69"></a><a name="qualifiedName"></a><span class='definition'>qualifiedName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-70"></a><span class='definition'>qualifiedName</span> <span class='varid'>n</span>
-<a name="line-71"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span>
-<a name="line-72"></a>	<span class='keyglyph'>=</span> <span class='varid'>lp</span>
-<a name="line-73"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-74"></a>	<span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span>
-<a name="line-75"></a>    <span class='keyword'>where</span>
-<a name="line-76"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>
-<a name="line-77"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>  <span class='varid'>n</span>
-<a name="line-78"></a>
-<a name="line-79"></a><span class='comment'>-- |</span>
-<a name="line-80"></a><span class='comment'>-- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part</span>
-<a name="line-81"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='conid'>QName</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='conid'>XName</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='conid'>NsEnv</span>
+<a name="line-22"></a>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>mkQName</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>mkName</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>mkNsName</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>mkSNsName</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>mkPrefixLocalPart</span>
+<a name="line-28"></a>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>equivQName</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>equivUri</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>equalQNameBy</span>
+<a name="line-32"></a>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>namePrefix</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>localPart</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>namespaceUri</span>
+<a name="line-36"></a>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>newXName</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>nullXName</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>isNullXName</span>
+<a name="line-40"></a>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>mkQName'</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>namePrefix'</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>localPart'</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>namespaceUri'</span>
+<a name="line-45"></a>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>setNamePrefix'</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>setLocalPart'</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>setNamespaceUri'</span>
+<a name="line-49"></a>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>qualifiedName</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>universalName</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>universalUri</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>buildUniversalName</span>
+<a name="line-54"></a>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNsUri</span>
+<a name="line-56"></a>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>setNamespace</span>                      <span class='comment'>-- namespace related functions</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>isNCName</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>isWellformedQualifiedName</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>isWellformedQName</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>isWellformedNSDecl</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>isWellformedNameSpaceName</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>isNameSpaceName</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>isDeclaredNamespace</span>
+<a name="line-65"></a>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>xmlNamespaceXName</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>xmlXName</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsNamespaceXName</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsXName</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsQN</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>toNsEnv</span>
+<a name="line-73"></a>    <span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='keyword'>where</span>
+<a name="line-76"></a>
+<a name="line-77"></a><span class='comment'>{-
+<a name="line-78"></a>import           Debug.Trace
+<a name="line-79"></a> -}</span>
+<a name="line-80"></a>
+<a name="line-81"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>                  <span class='layout'>(</span> <span class='layout'>(</span><span class='varop'>***</span><span class='layout'>)</span> <span class='layout'>)</span>
 <a name="line-82"></a>
-<a name="line-83"></a><a name="universalName"></a><span class='definition'>universalName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-84"></a><span class='definition'>universalName</span>	<span class='keyglyph'>=</span> <span class='varid'>buildUniversalName</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='varid'>lp</span> <span class='keyglyph'>-&gt;</span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>ns</span> <span class='varop'>++</span> <span class='chr'>'}'</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-83"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Concurrent</span><span class='varop'>.</span><span class='conid'>MVar</span>
+<a name="line-84"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>
 <a name="line-85"></a>
-<a name="line-86"></a><span class='comment'>-- |</span>
-<a name="line-87"></a><span class='comment'>-- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,</span>
-<a name="line-88"></a><span class='comment'>-- where the subject, predicate and object often are concatenated from namespace uri and local part</span>
-<a name="line-89"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>
-<a name="line-90"></a>
-<a name="line-91"></a><a name="universalUri"></a><span class='definition'>universalUri</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-92"></a><span class='definition'>universalUri</span>	<span class='keyglyph'>=</span> <span class='varid'>buildUniversalName</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span>
-<a name="line-93"></a>
-<a name="line-94"></a><span class='comment'>-- |</span>
-<a name="line-95"></a><span class='comment'>-- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else</span>
-<a name="line-96"></a><span class='comment'>-- namespace uri and local part are combined with the combining function given by the first parameter</span>
-<a name="line-97"></a>
-<a name="line-98"></a><a name="buildUniversalName"></a><span class='definition'>buildUniversalName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-99"></a><span class='definition'>buildUniversalName</span> <span class='varid'>bf</span> <span class='varid'>n</span>
-<a name="line-100"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>
-<a name="line-101"></a>	<span class='keyglyph'>=</span> <span class='varid'>lp</span>
-<a name="line-102"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-103"></a>	<span class='keyglyph'>=</span> <span class='varid'>bf</span> <span class='varid'>ns</span> <span class='varid'>lp</span>
-<a name="line-104"></a>    <span class='keyword'>where</span>
-<a name="line-105"></a>    <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
-<a name="line-106"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>    <span class='varid'>n</span>
-<a name="line-107"></a>
-<a name="line-108"></a><span class='comment'>-- |</span>
-<a name="line-109"></a><span class='comment'>-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.</span>
+<a name="line-86"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>
+<a name="line-87"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>                      <span class='layout'>(</span> <span class='varid'>toLower</span> <span class='layout'>)</span>
+<a name="line-88"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>                      <span class='layout'>(</span> <span class='varid'>isPrefixOf</span> <span class='layout'>)</span>
+<a name="line-89"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span>               <span class='keyword'>as</span> <span class='conid'>M</span>
+<a name="line-90"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-91"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>
+<a name="line-92"></a>
+<a name="line-93"></a><span class='keyword'>import</span>           <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Unsafe</span>               <span class='layout'>(</span> <span class='varid'>unsafePerformIO</span> <span class='layout'>)</span>
+<a name="line-94"></a>
+<a name="line-95"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>   <span class='layout'>(</span> <span class='varid'>a_xml</span>
+<a name="line-96"></a>                                                <span class='layout'>,</span> <span class='varid'>a_xmlns</span>
+<a name="line-97"></a>                                                <span class='layout'>,</span> <span class='varid'>xmlNamespace</span>
+<a name="line-98"></a>                                                <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>
+<a name="line-99"></a>                                                <span class='layout'>)</span>
+<a name="line-100"></a>
+<a name="line-101"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>       <span class='layout'>(</span> <span class='varid'>isXmlNCNameStartChar</span>
+<a name="line-102"></a>                                                <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>
+<a name="line-103"></a>                                                <span class='layout'>)</span>
+<a name="line-104"></a>
+<a name="line-105"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-106"></a>
+<a name="line-107"></a><span class='comment'>-- | XML names are represented by Strings, but these strings do not mix up with normal strings.</span>
+<a name="line-108"></a><span class='comment'>-- Names are always reduced to normal form, and they are stored internally in a name cache</span>
+<a name="line-109"></a><span class='comment'>-- for sharing equal names by the same data structure</span>
 <a name="line-110"></a>
-<a name="line-111"></a><a name="mkQName"></a><span class='definition'>mkQName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-112"></a><span class='definition'>mkQName</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>n</span>
-<a name="line-113"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>p</span>
-<a name="line-114"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>
-<a name="line-115"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
-<a name="line-116"></a>	 <span class='layout'>}</span>
-<a name="line-117"></a>
-<a name="line-118"></a><span class='comment'>-- |</span>
-<a name="line-119"></a><span class='comment'>-- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.</span>
-<a name="line-120"></a>
-<a name="line-121"></a><a name="mkName"></a><span class='definition'>mkName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-122"></a><span class='definition'>mkName</span> <span class='varid'>s</span>
-<a name="line-123"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-124"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>
-<a name="line-125"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-126"></a>	 <span class='layout'>}</span>
-<a name="line-127"></a>
-<a name="line-128"></a><span class='comment'>-- |</span>
-<a name="line-129"></a><span class='comment'>-- constructs a simple name, with prefix and localPart but without a namespace uri.</span>
-<a name="line-130"></a><span class='comment'>--</span>
-<a name="line-131"></a><span class='comment'>-- see also 'mkName', 'mkNsName', 'mkSNsName'</span>
+<a name="line-111"></a><a name="XName"></a><span class='keyword'>type</span> <span class='conid'>XName</span>      <span class='keyglyph'>=</span> <span class='conid'>Atom</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='comment'>-- |</span>
+<a name="line-114"></a><span class='comment'>-- Namespace support for element and attribute names.</span>
+<a name="line-115"></a><span class='comment'>--</span>
+<a name="line-116"></a><span class='comment'>-- A qualified name consists of a name prefix, a local name</span>
+<a name="line-117"></a><span class='comment'>-- and a namespace uri.</span>
+<a name="line-118"></a><span class='comment'>-- All modules, which are not namespace aware, use only the 'localPart' component.</span>
+<a name="line-119"></a><span class='comment'>-- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"</span>
+<a name="line-120"></a><span class='comment'>-- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri</span>
+<a name="line-121"></a>
+<a name="line-122"></a><a name="QName"></a><span class='keyword'>data</span> <span class='conid'>QName</span>      <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='varop'>!</span> <span class='conid'>XName</span>
+<a name="line-123"></a>                <span class='keyglyph'>|</span> <span class='conid'>PX</span> <span class='varop'>!</span> <span class='conid'>XName</span> <span class='varop'>!</span> <span class='conid'>QName</span>
+<a name="line-124"></a>                <span class='keyglyph'>|</span> <span class='conid'>NS</span> <span class='varop'>!</span> <span class='conid'>XName</span> <span class='varop'>!</span> <span class='conid'>QName</span>
+<a name="line-125"></a>             <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Read</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>
+<a name="line-126"></a>
+<a name="line-127"></a><span class='comment'>-- |</span>
+<a name="line-128"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>
+<a name="line-129"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>
+<a name="line-130"></a>
+<a name="line-131"></a><a name="NsEnv"></a><span class='keyword'>type</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>=</span> <span class='conid'>AssocList</span> <span class='conid'>XName</span> <span class='conid'>XName</span>
 <a name="line-132"></a>
-<a name="line-133"></a><a name="mkPrefixLocalPart"></a><span class='definition'>mkPrefixLocalPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-134"></a><span class='definition'>mkPrefixLocalPart</span> <span class='varid'>p</span> <span class='varid'>l</span>
-<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>p</span>
-<a name="line-136"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>
-<a name="line-137"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-138"></a>	 <span class='layout'>}</span>
-<a name="line-139"></a>
-<a name="line-140"></a><span class='comment'>-- |</span>
-<a name="line-141"></a><span class='comment'>-- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.</span>
-<a name="line-142"></a><span class='comment'>--</span>
-<a name="line-143"></a><span class='comment'>-- see also 'mkName', 'mkPrefixLocalPart'</span>
-<a name="line-144"></a>
-<a name="line-145"></a><a name="mkNsName"></a><span class='definition'>mkNsName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-146"></a><span class='definition'>mkNsName</span> <span class='varid'>n</span> <span class='varid'>ns</span>
-<a name="line-147"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>p</span>
-<a name="line-148"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>
-<a name="line-149"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>ns</span>
-<a name="line-150"></a>	 <span class='layout'>}</span>
-<a name="line-151"></a>      <span class='keyword'>where</span>
-<a name="line-152"></a>      <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>n</span>
-<a name="line-153"></a>      <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>l</span><span class='layout'>)</span>
-<a name="line-154"></a>	  <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>x2</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>x1</span><span class='layout'>)</span>
-<a name="line-155"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>tail</span> <span class='varid'>x2</span><span class='layout'>)</span>
-<a name="line-156"></a>
+<a name="line-133"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-134"></a>
+<a name="line-135"></a><span class='comment'>-- | Two QNames are equal if (1. case) namespaces are both empty and the qualified names</span>
+<a name="line-136"></a><span class='comment'>-- (prefix:localpart) are the same or (2. case) namespaces are set and namespaces and</span>
+<a name="line-137"></a><span class='comment'>-- local parts both are equal</span>
+<a name="line-138"></a>    
+<a name="line-139"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>QName</span> <span class='keyword'>where</span>
+<a name="line-140"></a>    <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp1</span><span class='layout'>)</span>     <span class='varop'>==</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp2</span><span class='layout'>)</span>            <span class='keyglyph'>=</span> <span class='varid'>lp1</span> <span class='varop'>==</span> <span class='varid'>lp2</span>
+<a name="line-141"></a>    <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px1</span> <span class='varid'>qn1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px2</span> <span class='varid'>qn2</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>px1</span> <span class='varop'>==</span> <span class='varid'>px2</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>qn1</span><span class='varop'>==</span> <span class='varid'>qn2</span>
+<a name="line-142"></a>    <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns1</span> <span class='varid'>qn1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns2</span> <span class='varid'>qn2</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>ns2</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>localPart'</span> <span class='varid'>qn1</span> <span class='varop'>==</span> <span class='varid'>localPart'</span> <span class='varid'>qn2</span>
+<a name="line-143"></a>    <span class='varid'>n1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='varop'>==</span> <span class='varid'>n2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>           <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n1</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>n2</span>
+<a name="line-144"></a>    <span class='varid'>n1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='varop'>==</span> <span class='varid'>n2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>         <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n1</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>n2</span>
+<a name="line-145"></a>    <span class='keyword'>_</span>            <span class='varop'>==</span> <span class='keyword'>_</span>                   <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-146"></a>
+<a name="line-147"></a><span class='comment'>-- the 4. and 5. rule are only neccessary when someone</span>
+<a name="line-148"></a><span class='comment'>-- uses XML names not in a systematical way</span>
+<a name="line-149"></a><span class='comment'>-- and does things like "mkName("x:y") == mkPrefixLocalPart("x","y")</span>
+<a name="line-150"></a>
+<a name="line-151"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>QName</span> <span class='keyword'>where</span>
+<a name="line-152"></a>
+<a name="line-153"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-154"></a>
+<a name="line-155"></a><a name="newXName"></a><span class='definition'>newXName</span>                <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span>
+<a name="line-156"></a><span class='definition'>newXName</span>                <span class='keyglyph'>=</span> <span class='varid'>newAtom</span>
 <a name="line-157"></a>
-<a name="line-158"></a><span class='comment'>-- |</span>
-<a name="line-159"></a><span class='comment'>-- constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter</span>
-<a name="line-160"></a><span class='comment'>--</span>
-<a name="line-161"></a><span class='comment'>-- see also 'mkNsName', 'mkPrefixLocalPart'</span>
-<a name="line-162"></a>
-<a name="line-163"></a><a name="mkSNsName"></a><span class='definition'>mkSNsName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-164"></a><span class='definition'>mkSNsName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='varid'>n</span> <span class='str'>""</span>
+<a name="line-158"></a><a name="isNullXName"></a><span class='definition'>isNullXName</span>             <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-159"></a><span class='definition'>isNullXName</span>             <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nullXName</span><span class='layout'>)</span>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="nullXName"></a><span class='definition'>nullXName</span>               <span class='keyglyph'>::</span> <span class='conid'>XName</span>
+<a name="line-162"></a><span class='definition'>nullXName</span>               <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='str'>""</span>
+<a name="line-163"></a>
+<a name="line-164"></a><span class='comment'>-- | access name prefix</span>
 <a name="line-165"></a>
-<a name="line-166"></a><span class='comment'>-- | Empty QName</span>
-<a name="line-167"></a>
-<a name="line-168"></a><a name="nullQName"></a><span class='definition'>nullQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
-<a name="line-169"></a><span class='definition'>nullQName</span>	<span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='str'>""</span> <span class='str'>""</span> <span class='str'>""</span>
+<a name="line-166"></a><a name="namePrefix'"></a><span class='definition'>namePrefix'</span>             <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span>
+<a name="line-167"></a><span class='definition'>namePrefix'</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>nullXName</span>
+<a name="line-168"></a><span class='definition'>namePrefix'</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>px</span>
+<a name="line-169"></a><span class='definition'>namePrefix'</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='varid'>namePrefix'</span> <span class='varid'>n</span>
 <a name="line-170"></a>
-<a name="line-171"></a><span class='comment'>-- | Equality of QNames: Two QNames are equal, if the local parts are equal</span>
-<a name="line-172"></a><span class='comment'>-- and the namespace URIs are equal.</span>
-<a name="line-173"></a><span class='comment'>-- The comparison works with and without namespace propagation.</span>
-<a name="line-174"></a><span class='comment'>-- If namespaces have been propagated, the name is split into prefix and local part</span>
-<a name="line-175"></a><span class='comment'>-- and the namespace uri is set. In this case the prefix is not significant for equality test.</span>
-<a name="line-176"></a><span class='comment'>-- If namespaces have not been propagated, the local part contains the full name, prefix</span>
-<a name="line-177"></a><span class='comment'>-- and namespace URI are empty. The full name (prefix and local part) is used for comparison.</span>
-<a name="line-178"></a>
-<a name="line-179"></a><a name="equalQName"></a><span class='definition'>equalQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-180"></a><span class='definition'>equalQName</span> 	<span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>
-<a name="line-181"></a>
-<a name="line-182"></a><span class='comment'>-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.</span>
-<a name="line-183"></a><span class='comment'>-- Comparison is done with 'equalQNameBy' and 'equivUri'</span>
-<a name="line-184"></a>
-<a name="line-185"></a><a name="equivQName"></a><span class='definition'>equivQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-186"></a><span class='definition'>equivQName</span>	<span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='varid'>equivUri</span>
-<a name="line-187"></a>
-<a name="line-188"></a><span class='comment'>-- | Comparison of normalized namespace URIs using 'normalizeNsUri'</span>
+<a name="line-171"></a><span class='comment'>-- | access local part</span>
+<a name="line-172"></a>
+<a name="line-173"></a><a name="localPart'"></a><span class='definition'>localPart'</span>              <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span>
+<a name="line-174"></a><span class='definition'>localPart'</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>lp</span>
+<a name="line-175"></a><span class='definition'>localPart'</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>localPart'</span> <span class='varid'>n</span>
+<a name="line-176"></a><span class='definition'>localPart'</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>localPart'</span> <span class='varid'>n</span>
+<a name="line-177"></a>
+<a name="line-178"></a><span class='comment'>-- | access namespace uri</span>
+<a name="line-179"></a>
+<a name="line-180"></a><a name="namespaceUri'"></a><span class='definition'>namespaceUri'</span>           <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span>
+<a name="line-181"></a><span class='definition'>namespaceUri'</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span>
+<a name="line-182"></a><span class='definition'>namespaceUri'</span> <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='varid'>nullXName</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="namePrefix"></a><span class='definition'>namePrefix</span>              <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-185"></a><span class='definition'>namePrefix</span>              <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>namePrefix'</span>
+<a name="line-186"></a>
+<a name="line-187"></a><a name="localPart"></a><span class='definition'>localPart</span>               <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-188"></a><span class='definition'>localPart</span>               <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>localPart'</span>
 <a name="line-189"></a>
-<a name="line-190"></a><a name="equivUri"></a><span class='definition'>equivUri</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-191"></a><span class='definition'>equivUri</span> <span class='varid'>x</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>normalizeNsUri</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>normalizeNsUri</span> <span class='varid'>y</span>
+<a name="line-190"></a><a name="namespaceUri"></a><span class='definition'>namespaceUri</span>            <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-191"></a><span class='definition'>namespaceUri</span>            <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>namespaceUri'</span>
 <a name="line-192"></a>
-<a name="line-193"></a><span class='comment'>-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...</span>
-<a name="line-194"></a><span class='comment'>-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and</span>
-<a name="line-195"></a><span class='comment'>-- 'equivQName'</span>
+<a name="line-193"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-194"></a>
+<a name="line-195"></a><span class='comment'>-- | set name prefix</span>
 <a name="line-196"></a>
-<a name="line-197"></a><a name="equalQNameBy"></a><span class='definition'>equalQNameBy</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-198"></a><span class='definition'>equalQNameBy</span> <span class='varid'>equiv</span> <span class='varid'>q1</span> <span class='varid'>q2</span>
-<a name="line-199"></a>    <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>q2</span>
-<a name="line-200"></a>      <span class='varop'>&amp;&amp;</span>
-<a name="line-201"></a>      <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>q1</span> <span class='varop'>`equiv`</span> <span class='varid'>namespaceUri</span> <span class='varid'>q2</span><span class='layout'>)</span>
-<a name="line-202"></a>
-<a name="line-203"></a><span class='comment'>-- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored</span>
+<a name="line-197"></a><a name="setNamespaceUri'"></a><span class='definition'>setNamespaceUri'</span>                <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-198"></a><span class='definition'>setNamespaceUri'</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isNullXName</span> <span class='varid'>ns</span>
+<a name="line-199"></a>                                  <span class='keyword'>then</span> <span class='varid'>n</span>
+<a name="line-200"></a>                                  <span class='keyword'>else</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span>
+<a name="line-201"></a><span class='definition'>setNamespaceUri'</span> <span class='varid'>ns</span> <span class='varid'>n</span>           <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isNullXName</span> <span class='varid'>ns</span>
+<a name="line-202"></a>                                  <span class='keyword'>then</span> <span class='varid'>n</span>
+<a name="line-203"></a>                                  <span class='keyword'>else</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span>
 <a name="line-204"></a>
-<a name="line-205"></a><a name="normalizeNsUri"></a><span class='definition'>normalizeNsUri</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-206"></a><span class='definition'>normalizeNsUri</span>
-<a name="line-207"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varop'>.</span> <span class='varid'>stripSlash</span>
-<a name="line-208"></a>    <span class='keyword'>where</span>
-<a name="line-209"></a>    <span class='varid'>stripSlash</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-210"></a>    <span class='varid'>stripSlash</span> <span class='varid'>s</span>
-<a name="line-211"></a>	<span class='keyglyph'>|</span> <span class='varid'>last</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='chr'>'/'</span>	<span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varid'>s</span>
-<a name="line-212"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-205"></a><span class='comment'>-- | set local part</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="setLocalPart'"></a><span class='definition'>setLocalPart'</span>                   <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-208"></a><span class='definition'>setLocalPart'</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>         <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='varid'>lp</span>
+<a name="line-209"></a><span class='definition'>setLocalPart'</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='varid'>setLocalPart'</span> <span class='varid'>lp</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-210"></a><span class='definition'>setLocalPart'</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='varid'>setLocalPart'</span> <span class='varid'>lp</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-211"></a>
+<a name="line-212"></a><span class='comment'>-- | set name prefix</span>
 <a name="line-213"></a>
-<a name="line-214"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-214"></a><a name="setNamePrefix'"></a><span class='definition'>setNamePrefix'</span>                  <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-215"></a><span class='definition'>setNamePrefix'</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>nullXName</span>
+<a name="line-216"></a>                                  <span class='keyword'>then</span> <span class='varid'>n</span>
+<a name="line-217"></a>                                  <span class='keyword'>else</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span>
+<a name="line-218"></a><span class='definition'>setNamePrefix'</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>nullXName</span>
+<a name="line-219"></a>                                  <span class='keyword'>then</span> <span class='varid'>n</span>
+<a name="line-220"></a>                                  <span class='keyword'>else</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span>
+<a name="line-221"></a><span class='definition'>setNamePrefix'</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='varid'>setNamePrefix'</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-222"></a>
+<a name="line-223"></a>
+<a name="line-224"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-225"></a>
+<a name="line-226"></a><span class='comment'>-- |</span>
+<a name="line-227"></a><span class='comment'>-- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="qualifiedName"></a><span class='definition'>qualifiedName</span>                   <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-230"></a><span class='definition'>qualifiedName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>           <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>lp</span>
+<a name="line-231"></a><span class='definition'>qualifiedName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span>         <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>px</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-232"></a><span class='definition'>qualifiedName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>          <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>
+<a name="line-233"></a>
+<a name="line-234"></a><span class='comment'>-- |</span>
+<a name="line-235"></a><span class='comment'>-- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part</span>
+<a name="line-236"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>
+<a name="line-237"></a>
+<a name="line-238"></a><a name="universalName"></a><span class='definition'>universalName</span>                   <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-239"></a><span class='definition'>universalName</span>                   <span class='keyglyph'>=</span> <span class='varid'>buildUniversalName</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='varid'>lp</span> <span class='keyglyph'>-&gt;</span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>ns</span> <span class='varop'>++</span> <span class='chr'>'}'</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-240"></a>
+<a name="line-241"></a><span class='comment'>-- |</span>
+<a name="line-242"></a><span class='comment'>-- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,</span>
+<a name="line-243"></a><span class='comment'>-- where the subject, predicate and object often are concatenated from namespace uri and local part</span>
+<a name="line-244"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>
+<a name="line-245"></a>
+<a name="line-246"></a><a name="universalUri"></a><span class='definition'>universalUri</span>                    <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-247"></a><span class='definition'>universalUri</span>                    <span class='keyglyph'>=</span> <span class='varid'>buildUniversalName</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-248"></a>
+<a name="line-249"></a><span class='comment'>-- |</span>
+<a name="line-250"></a><span class='comment'>-- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else</span>
+<a name="line-251"></a><span class='comment'>-- namespace uri and local part are combined with the combining function given by the first parameter</span>
+<a name="line-252"></a>
+<a name="line-253"></a><a name="buildUniversalName"></a><span class='definition'>buildUniversalName</span>              <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-254"></a><span class='definition'>buildUniversalName</span> <span class='varid'>bf</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>ns</span> <span class='varop'>`bf`</span> <span class='varid'>localPart</span> <span class='varid'>n</span>
+<a name="line-255"></a><span class='definition'>buildUniversalName</span> <span class='keyword'>_</span>  <span class='varid'>n</span>         <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>n</span>
+<a name="line-256"></a>
+<a name="line-257"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-258"></a><span class='comment'>--</span>
+<a name="line-259"></a><span class='comment'>-- internal XName functions</span>
+<a name="line-260"></a>
+<a name="line-261"></a><a name="mkQName'"></a><span class='definition'>mkQName'</span>                        <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-262"></a><span class='definition'>mkQName'</span> <span class='varid'>px</span> <span class='varid'>lp</span> <span class='varid'>ns</span>
+<a name="line-263"></a>    <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>ns</span>            <span class='keyglyph'>=</span>       <span class='varid'>px_lp</span>
+<a name="line-264"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>px_lp</span>
+<a name="line-265"></a>    <span class='keyword'>where</span>
+<a name="line-266"></a>    <span class='varid'>px_lp</span>
+<a name="line-267"></a>        <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>px</span>        <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='varid'>lp</span>
+<a name="line-268"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>             <span class='keyglyph'>=</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-269"></a>
+<a name="line-270"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-271"></a>
+<a name="line-272"></a><span class='comment'>-- |</span>
+<a name="line-273"></a><span class='comment'>-- constructs a simple name, with prefix and localPart but without a namespace uri.</span>
+<a name="line-274"></a><span class='comment'>--</span>
+<a name="line-275"></a><span class='comment'>-- see also 'mkQName', 'mkName'</span>
+<a name="line-276"></a>
+<a name="line-277"></a><a name="mkPrefixLocalPart"></a><span class='definition'>mkPrefixLocalPart</span>               <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-278"></a><span class='definition'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>
+<a name="line-279"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span>                   <span class='keyglyph'>=</span>                  <span class='varid'>n1</span>
+<a name="line-280"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='conid'>PX</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>px</span><span class='layout'>)</span> <span class='varid'>n1</span>
+<a name="line-281"></a>    <span class='keyword'>where</span>
+<a name="line-282"></a>    <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-283"></a>
+<a name="line-284"></a><span class='comment'>-- |</span>
+<a name="line-285"></a><span class='comment'>-- constructs a simple, namespace unaware name.</span>
+<a name="line-286"></a><span class='comment'>-- If the name is in @prefix:localpart@ form and the prefix is not empty</span>
+<a name="line-287"></a><span class='comment'>-- the name is split internally into</span>
+<a name="line-288"></a><span class='comment'>-- a prefix and a local part.</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="mkName"></a><span class='definition'>mkName</span>                          <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-291"></a><span class='definition'>mkName</span> <span class='varid'>n</span>                        
+<a name="line-292"></a>    <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='varop'>`elem`</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-293"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-294"></a>      <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>px</span><span class='layout'>)</span>			<span class='comment'>-- more restrictive: isWellformedQualifiedName n</span>
+<a name="line-295"></a>                                <span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>
+<a name="line-296"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='str'>""</span> <span class='varid'>n</span>
+<a name="line-297"></a>    <span class='keyword'>where</span>
+<a name="line-298"></a>    <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-299"></a>
+<a name="line-300"></a><span class='comment'>-- |</span>
+<a name="line-301"></a><span class='comment'>-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.</span>
+<a name="line-302"></a><span class='comment'>-- This function can be used to build not wellformed prefix:localpart names.</span>
+<a name="line-303"></a><span class='comment'>-- The XPath module uses wildcard names like @xxx:*@. These must be build with 'mkQName'</span>
+<a name="line-304"></a><span class='comment'>-- and not with mkName.</span>
+<a name="line-305"></a>
+<a name="line-306"></a><a name="mkQName"></a><span class='definition'>mkQName</span>                         <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-307"></a><span class='definition'>mkQName</span> <span class='varid'>px</span> <span class='varid'>lp</span> <span class='varid'>ns</span>
+<a name="line-308"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>                   <span class='keyglyph'>=</span>                  <span class='varid'>n1</span>
+<a name="line-309"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='varid'>n1</span>
+<a name="line-310"></a>    <span class='keyword'>where</span>
+<a name="line-311"></a>    <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>
+<a name="line-312"></a>
+<a name="line-313"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-314"></a>
+<a name="line-315"></a><span class='comment'>-- |</span>
+<a name="line-316"></a><span class='comment'>-- old name for 'mkName'</span>
+<a name="line-317"></a>
+<a name="line-318"></a><a name="mkSNsName"></a><span class='definition'>mkSNsName</span>                       <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-319"></a><span class='definition'>mkSNsName</span>                       <span class='keyglyph'>=</span> <span class='varid'>mkName</span>
+<a name="line-320"></a>
+<a name="line-321"></a><span class='comment'>-- |</span>
+<a name="line-322"></a><span class='comment'>-- constructs a simple, namespace aware name, with prefix:localPart as first parameter,</span>
+<a name="line-323"></a><span class='comment'>-- namspace uri as second.</span>
+<a name="line-324"></a><span class='comment'>--</span>
+<a name="line-325"></a><span class='comment'>-- see also 'mkName', 'mkPrefixLocalPart'</span>
+<a name="line-326"></a>
+<a name="line-327"></a><a name="mkNsName"></a><span class='definition'>mkNsName</span>                        <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-328"></a><span class='definition'>mkNsName</span> <span class='varid'>n</span> <span class='varid'>ns</span>
+<a name="line-329"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>                   <span class='keyglyph'>=</span>                   <span class='varid'>mkName</span> <span class='varid'>n</span>
+<a name="line-330"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-331"></a>
+<a name="line-332"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-333"></a>
+<a name="line-334"></a><span class='comment'>-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.</span>
+<a name="line-335"></a><span class='comment'>-- Comparison is done with 'equalQNameBy' and 'equivUri'</span>
+<a name="line-336"></a>
+<a name="line-337"></a><a name="equivQName"></a><span class='definition'>equivQName</span>                      <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-338"></a><span class='definition'>equivQName</span>                      <span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='varid'>equivUri</span>
+<a name="line-339"></a>
+<a name="line-340"></a><span class='comment'>-- | Comparison of normalized namespace URIs using 'normalizeNsUri'</span>
+<a name="line-341"></a>
+<a name="line-342"></a><a name="equivUri"></a><span class='definition'>equivUri</span>                        <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-343"></a><span class='definition'>equivUri</span> <span class='varid'>x</span> <span class='varid'>y</span>                    <span class='keyglyph'>=</span> <span class='varid'>normalizeNsUri</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>normalizeNsUri</span> <span class='varid'>y</span>
+<a name="line-344"></a>
+<a name="line-345"></a><span class='comment'>-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...</span>
+<a name="line-346"></a><span class='comment'>-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and</span>
+<a name="line-347"></a><span class='comment'>-- 'equivQName'</span>
+<a name="line-348"></a>
+<a name="line-349"></a><a name="equalQNameBy"></a><span class='definition'>equalQNameBy</span>                    <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-350"></a><span class='definition'>equalQNameBy</span> <span class='varid'>equiv</span> <span class='varid'>q1</span> <span class='varid'>q2</span>        <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>q2</span>
+<a name="line-351"></a>                                  <span class='varop'>&amp;&amp;</span>
+<a name="line-352"></a>                                  <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>q1</span> <span class='varop'>`equiv`</span> <span class='varid'>namespaceUri</span> <span class='varid'>q2</span><span class='layout'>)</span>
+<a name="line-353"></a>
+<a name="line-354"></a><span class='comment'>-- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored</span>
+<a name="line-355"></a>
+<a name="line-356"></a><a name="normalizeNsUri"></a><span class='definition'>normalizeNsUri</span>                  <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-357"></a><span class='definition'>normalizeNsUri</span>                  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varop'>.</span> <span class='varid'>stripSlash</span>
+<a name="line-358"></a>    <span class='keyword'>where</span>
+<a name="line-359"></a>    <span class='varid'>stripSlash</span> <span class='str'>""</span>               <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-360"></a>    <span class='varid'>stripSlash</span> <span class='varid'>s</span>
+<a name="line-361"></a>        <span class='keyglyph'>|</span> <span class='varid'>last</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='chr'>'/'</span>         <span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varid'>s</span>
+<a name="line-362"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>             <span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-363"></a>
+<a name="line-364"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-365"></a>
+<a name="line-366"></a><span class='comment'>-- Namespace predicates</span>
+<a name="line-367"></a>
+<a name="line-368"></a><span class='comment'>-- |</span>
+<a name="line-369"></a><span class='comment'>-- Compute the name prefix and the namespace uri for a qualified name.</span>
+<a name="line-370"></a><span class='comment'>--</span>
+<a name="line-371"></a><span class='comment'>-- This function does not test whether the name is a wellformed qualified name.</span>
+<a name="line-372"></a><span class='comment'>-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,</span>
+<a name="line-373"></a><span class='comment'>-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.</span>
+<a name="line-374"></a>
+<a name="line-375"></a><a name="setNamespace"></a><span class='definition'>setNamespace</span>                    <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-376"></a><span class='definition'>setNamespace</span> <span class='varid'>env</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='varid'>attachNS</span> <span class='varid'>env</span> <span class='varid'>px</span>        <span class='varid'>n</span>              <span class='comment'>-- none empty prefix found</span>
+<a name="line-377"></a><span class='definition'>setNamespace</span> <span class='varid'>env</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>attachNS</span> <span class='varid'>env</span> <span class='varid'>nullXName</span> <span class='varid'>n</span>              <span class='comment'>-- use default namespace uri</span>
+<a name="line-378"></a><span class='definition'>setNamespace</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>setNamespace</span> <span class='varid'>env</span> <span class='varid'>n</span>
+<a name="line-379"></a>
+<a name="line-380"></a><a name="attachNS"></a><span class='definition'>attachNS</span>                        <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-381"></a><span class='definition'>attachNS</span> <span class='varid'>env</span> <span class='varid'>px</span> <span class='varid'>n1</span>              <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>n1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>px</span> <span class='varop'>$</span> <span class='varid'>env</span>
+<a name="line-382"></a>
+<a name="line-383"></a><a name="xmlnsNamespaceXName"></a><span class='definition'>xmlnsNamespaceXName</span>             <span class='keyglyph'>::</span> <span class='conid'>XName</span>
+<a name="line-384"></a><span class='definition'>xmlnsNamespaceXName</span>             <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>xmlnsNamespace</span>
+<a name="line-385"></a>
+<a name="line-386"></a><a name="xmlnsXName"></a><span class='definition'>xmlnsXName</span>                      <span class='keyglyph'>::</span> <span class='conid'>XName</span>
+<a name="line-387"></a><span class='definition'>xmlnsXName</span>                      <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>a_xmlns</span>
+<a name="line-388"></a>
+<a name="line-389"></a><a name="xmlnsQN"></a><span class='definition'>xmlnsQN</span>                         <span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-390"></a><span class='definition'>xmlnsQN</span>                         <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>xmlnsNamespaceXName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>xmlnsXName</span><span class='layout'>)</span>
+<a name="line-391"></a>
+<a name="line-392"></a><a name="xmlNamespaceXName"></a><span class='definition'>xmlNamespaceXName</span>               <span class='keyglyph'>::</span> <span class='conid'>XName</span>
+<a name="line-393"></a><span class='definition'>xmlNamespaceXName</span>               <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>xmlNamespace</span>
+<a name="line-394"></a>
+<a name="line-395"></a><a name="xmlXName"></a><span class='definition'>xmlXName</span>                        <span class='keyglyph'>::</span> <span class='conid'>XName</span>
+<a name="line-396"></a><span class='definition'>xmlXName</span>                        <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>a_xml</span>
+<a name="line-397"></a>
+<a name="line-398"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-399"></a><span class='comment'>--</span>
+<a name="line-400"></a>
+<a name="line-401"></a><span class='comment'>-- |</span>
+<a name="line-402"></a><span class='comment'>-- test for wellformed NCName, rule [4] XML Namespaces</span>
+<a name="line-403"></a>
+<a name="line-404"></a><a name="isNCName"></a><span class='definition'>isNCName</span>                        <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-405"></a><span class='definition'>isNCName</span> <span class='conid'>[]</span>                     <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-406"></a><span class='definition'>isNCName</span> <span class='varid'>n</span>                      <span class='keyglyph'>=</span> <span class='varid'>and</span> <span class='layout'>(</span> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='varop'>$</span><span class='layout'>)</span>
+<a name="line-407"></a>                                        <span class='layout'>(</span><span class='varid'>isXmlNCNameStartChar</span> <span class='conop'>:</span> <span class='varid'>repeat</span> <span class='varid'>isXmlNCNameChar</span><span class='layout'>)</span>
+<a name="line-408"></a>                                        <span class='varid'>n</span>
+<a name="line-409"></a>                                      <span class='layout'>)</span>
+<a name="line-410"></a>
+<a name="line-411"></a><span class='comment'>-- |</span>
+<a name="line-412"></a><span class='comment'>-- test for wellformed QName, rule [6] XML Namespaces</span>
+<a name="line-413"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
+<a name="line-414"></a>
+<a name="line-415"></a><a name="isWellformedQualifiedName"></a><span class='definition'>isWellformedQualifiedName</span>       <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-416"></a><span class='definition'>isWellformedQualifiedName</span> <span class='varid'>s</span>
+<a name="line-417"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>lp</span>                   <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span>
+<a name="line-418"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNCName</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-419"></a>    <span class='keyword'>where</span>
+<a name="line-420"></a>    <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span>                    <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-421"></a>
+<a name="line-422"></a><span class='comment'>-- |</span>
+<a name="line-423"></a><span class='comment'>-- test for wellformed QName values.</span>
+<a name="line-424"></a><span class='comment'>-- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.</span>
+<a name="line-425"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
+<a name="line-426"></a>
+<a name="line-427"></a><a name="isWellformedQName"></a><span class='definition'>isWellformedQName</span>               <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-428"></a><span class='definition'>isWellformedQName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>lp</span>                          <span class='comment'>-- rule [8] XML Namespaces</span>
+<a name="line-429"></a><span class='definition'>isWellformedQName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isNCName</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>px</span>                          <span class='comment'>-- rule [7] XML Namespaces</span>
+<a name="line-430"></a>                                  <span class='varop'>&amp;&amp;</span>
+<a name="line-431"></a>                                  <span class='varid'>isWellformedQName</span> <span class='varid'>n</span>
+<a name="line-432"></a><span class='definition'>isWellformedQName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>isWellformedQName</span> <span class='varid'>n</span>
+<a name="line-433"></a>
+<a name="line-434"></a><span class='comment'>-- |</span>
+<a name="line-435"></a><span class='comment'>-- test whether an attribute name is a namesapce declaration name.</span>
+<a name="line-436"></a><span class='comment'>-- If this is not the case True is the result, else</span>
+<a name="line-437"></a><span class='comment'>-- the name must be a well formed namespace name:</span>
+<a name="line-438"></a><span class='comment'>-- All namespace prefixes starting with \"xml\" are reserved for XML related definitions.</span>
+<a name="line-439"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
+<a name="line-440"></a>
+<a name="line-441"></a><a name="isWellformedNSDecl"></a><span class='definition'>isWellformedNSDecl</span>              <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-442"></a><span class='definition'>isWellformedNSDecl</span> <span class='varid'>n</span>            <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isNameSpaceName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-443"></a>                                  <span class='varop'>||</span>
+<a name="line-444"></a>                                  <span class='varid'>isWellformedNameSpaceName</span> <span class='varid'>n</span>
+<a name="line-445"></a>
+<a name="line-446"></a><span class='comment'>-- |</span>
+<a name="line-447"></a><span class='comment'>-- test for a namespace name to be well formed</span>
+<a name="line-448"></a>
+<a name="line-449"></a><a name="isWellformedNameSpaceName"></a><span class='definition'>isWellformedNameSpaceName</span>               <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-450"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>
+<a name="line-451"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>
+<a name="line-452"></a>                                          <span class='varop'>&amp;&amp;</span>
+<a name="line-453"></a>                                          <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>lp'</span><span class='layout'>)</span>
+<a name="line-454"></a>                                          <span class='varop'>&amp;&amp;</span>
+<a name="line-455"></a>                                          <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>a_xml</span> <span class='varop'>`isPrefixOf`</span> <span class='varid'>lp'</span><span class='layout'>)</span>
+<a name="line-456"></a>                                          <span class='keyword'>where</span>
+<a name="line-457"></a>                                          <span class='varid'>lp'</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>n</span>
+<a name="line-458"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>isWellformedNSDecl</span> <span class='varid'>n</span>
+<a name="line-459"></a>
+<a name="line-460"></a><span class='comment'>-- |</span>
+<a name="line-461"></a><span class='comment'>-- test whether a name is a namespace declaration attribute name</span>
+<a name="line-462"></a>
+<a name="line-463"></a><a name="isNameSpaceName"></a><span class='definition'>isNameSpaceName</span>                 <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-464"></a><span class='definition'>isNameSpaceName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>         <span class='keyglyph'>=</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>
+<a name="line-465"></a><span class='definition'>isNameSpaceName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>
+<a name="line-466"></a><span class='definition'>isNameSpaceName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span>  <span class='varid'>n</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>isNameSpaceName</span> <span class='varid'>n</span>
+<a name="line-467"></a>
+<a name="line-468"></a><span class='comment'>-- |</span>
+<a name="line-469"></a><span class='comment'>-- </span>
+<a name="line-470"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>
+<a name="line-471"></a>
+<a name="line-472"></a><a name="isDeclaredNamespace"></a><span class='definition'>isDeclaredNamespace</span>             <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-473"></a><span class='definition'>isDeclaredNamespace</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>isNS</span> <span class='varid'>ns</span>        <span class='varid'>n</span>
+<a name="line-474"></a><span class='definition'>isDeclaredNamespace</span>        <span class='varid'>n</span>    <span class='keyglyph'>=</span> <span class='varid'>isNS</span> <span class='varid'>nullXName</span> <span class='varid'>n</span>
+<a name="line-475"></a>
+<a name="line-476"></a><a name="isNS"></a><span class='definition'>isNS</span>                            <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-477"></a><span class='definition'>isNS</span> <span class='keyword'>_</span>  <span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span>                  <span class='keyglyph'>=</span> <span class='conid'>True</span>                          <span class='comment'>-- no namespace used</span>
+<a name="line-478"></a><span class='definition'>isNS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-479"></a>    <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>          <span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlnsNamespaceXName</span>     <span class='comment'>-- "xmlns" has a predefined namespace uri</span>
+<a name="line-480"></a>    <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlXName</span>            <span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlNamespaceXName</span>       <span class='comment'>-- "xml" has a predefiend namespace"</span>
+<a name="line-481"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                 <span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>/=</span> <span class='varid'>nullXName</span>               <span class='comment'>-- namespace values are not empty</span>
+<a name="line-482"></a><span class='definition'>isNS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span>                <span class='keyglyph'>=</span> <span class='varid'>isNS</span> <span class='varid'>ns</span> <span class='varid'>n</span>                     <span class='comment'>-- this does not occur, but warning is prevented</span>
+<a name="line-483"></a>
+<a name="line-484"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-485"></a>
+<a name="line-486"></a><a name="toNsEnv"></a><span class='definition'>toNsEnv</span>                         <span class='keyglyph'>::</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
+<a name="line-487"></a><span class='definition'>toNsEnv</span>                         <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varop'>***</span> <span class='varid'>newXName</span><span class='layout'>)</span>
+<a name="line-488"></a>
+<a name="line-489"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-490"></a>
+<a name="line-491"></a><span class='comment'>-- the name cache, same implementation strategy as in Data.Atom,</span>
+<a name="line-492"></a><span class='comment'>-- but conversion to and from ByteString prevented</span>
+<a name="line-493"></a>
+<a name="line-494"></a><a name="Atoms"></a><span class='keyword'>type</span> <span class='conid'>Atoms</span>      <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-495"></a>
+<a name="line-496"></a><a name="Atom"></a><span class='keyword'>newtype</span> <span class='conid'>Atom</span>    <span class='keyglyph'>=</span> <span class='conid'>A</span> <span class='conid'>String</span>
+<a name="line-497"></a>                  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>
+<a name="line-498"></a>
+<a name="line-499"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-500"></a>
+<a name="line-501"></a><span class='comment'>-- | the internal cache for the strings</span>
+<a name="line-502"></a>
+<a name="line-503"></a><a name="theAtoms"></a><span class='definition'>theAtoms</span>        <span class='keyglyph'>::</span> <span class='conid'>MVar</span> <span class='conid'>Atoms</span>
+<a name="line-504"></a><span class='definition'>theAtoms</span>        <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='layout'>(</span><span class='varid'>newMVar</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span><span class='layout'>)</span>
+<a name="line-505"></a><span class='comment'>{-# NOINLINE theAtoms #-}</span>
+<a name="line-506"></a>
+<a name="line-507"></a><span class='comment'>-- | insert a bytestring into the atom cache</span>
+<a name="line-508"></a>
+<a name="line-509"></a><a name="insertAtom"></a><span class='definition'>insertAtom</span>      <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Atoms</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Atoms</span><span class='layout'>,</span> <span class='conid'>Atom</span><span class='layout'>)</span>
+<a name="line-510"></a><span class='definition'>insertAtom</span> <span class='varid'>s</span> <span class='varid'>m</span>  <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='comment'>{- (trace (show s) s) -}</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>m</span><span class='layout'>,</span> <span class='conid'>A</span> <span class='varid'>s</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-511"></a>                        <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s'</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>m</span><span class='layout'>,</span> <span class='conid'>A</span> <span class='varid'>s'</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-512"></a>                  <span class='varop'>.</span>
+<a name="line-513"></a>                  <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varop'>$</span> <span class='varid'>m</span>
+<a name="line-514"></a>
+<a name="line-515"></a><span class='comment'>-- | creation of an @Atom@ from a @String@</span>
+<a name="line-516"></a>
+<a name="line-517"></a><a name="newAtom"></a><span class='definition'>newAtom</span>         <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Atom</span>
+<a name="line-518"></a><span class='definition'>newAtom</span>         <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='varop'>.</span> <span class='varid'>newAtom'</span>
+<a name="line-519"></a><span class='comment'>{-# NOINLINE newAtom #-}</span>
+<a name="line-520"></a>
+<a name="line-521"></a><a name="newAtom'"></a><span class='comment'>-- | The internal operation running in the IO monad</span>
+<a name="line-522"></a><span class='definition'>newAtom'</span>        <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>Atom</span>
+<a name="line-523"></a><span class='definition'>newAtom'</span> <span class='varid'>s</span>      <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-524"></a>                  <span class='varid'>m</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>takeMVar</span> <span class='varid'>theAtoms</span>
+<a name="line-525"></a>                  <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>m'</span><span class='layout'>,</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>insertAtom</span> <span class='varid'>s</span> <span class='varid'>m</span>
+<a name="line-526"></a>                  <span class='varid'>putMVar</span> <span class='varid'>theAtoms</span> <span class='varid'>m'</span>
+<a name="line-527"></a>                  <span class='varid'>return</span> <span class='varid'>a</span>
+<a name="line-528"></a>
+<a name="line-529"></a><span class='keyword'>instance</span> <span class='conid'>Read</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>
+<a name="line-530"></a>    <span class='varid'>readsPrec</span> <span class='varid'>p</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>newAtom</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>readsPrec</span> <span class='varid'>p</span> <span class='varid'>str</span> <span class='keyglyph'>]</span>
+<a name="line-531"></a>
+<a name="line-532"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>
+<a name="line-533"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>A</span> <span class='varid'>s</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-534"></a>
+<a name="line-535"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>
+<a name="line-536"></a>
+<a name="line-537"></a><span class='comment'>-----------------------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html b/doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html
@@ -10,7 +10,7 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.DOM.ShowXml
-<a name="line-5"></a>   Copyright  : Copyright (C) 2008 Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2008-9 Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
@@ -29,388 +29,387 @@
 <a name="line-21"></a>    <span class='layout'>)</span>
 <a name="line-22"></a><span class='keyword'>where</span>
 <a name="line-23"></a>
-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-25"></a>
-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>		<span class='comment'>-- XML Tree types</span>
-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
-<a name="line-29"></a>    <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>
-<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>getDTDAttrl</span>
-<a name="line-31"></a>    <span class='layout'>)</span>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-33"></a>
-<a name="line-34"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-35"></a><span class='comment'>--</span>
-<a name="line-36"></a><span class='comment'>-- the toString conversion functions</span>
-<a name="line-37"></a>
-<a name="line-38"></a><span class='comment'>-- |</span>
-<a name="line-39"></a><span class='comment'>-- convert the result of a filter into a string</span>
-<a name="line-40"></a><span class='comment'>--</span>
-<a name="line-41"></a><span class='comment'>-- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation </span>
-<a name="line-42"></a>
-<a name="line-43"></a><a name="xshow"></a><span class='definition'>xshow</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-44"></a><span class='definition'>xshow</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>			<span class='comment'>-- special case optimisation</span>
-<a name="line-45"></a><span class='definition'>xshow</span> <span class='varid'>ts</span>			<span class='keyglyph'>=</span> <span class='varid'>showXmlTrees</span> <span class='varid'>ts</span> <span class='str'>""</span>
-<a name="line-46"></a>
-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-48"></a>
-<a name="line-49"></a><a name="showXmlTree"></a><span class='definition'>showXmlTree</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-50"></a>
-<a name="line-51"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-52"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>s</span>
-<a name="line-53"></a>
-<a name="line-54"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-55"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&amp;#"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>
-<a name="line-56"></a>
-<a name="line-57"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-58"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&amp;"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>r</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>
-<a name="line-59"></a>
-<a name="line-60"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!--"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>c</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"--&gt;"</span>
-<a name="line-62"></a>
-<a name="line-63"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;![CDATA["</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>d</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"]]&gt;"</span>
-<a name="line-65"></a>
-<a name="line-66"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-67"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;?"</span>
-<a name="line-68"></a>      <span class='varop'>.</span>
-<a name="line-69"></a>      <span class='varid'>showQName</span> <span class='varid'>n</span>
-<a name="line-70"></a>      <span class='varop'>.</span>
-<a name="line-71"></a>      <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showPiAttr</span><span class='layout'>)</span> <span class='varid'>al</span>
-<a name="line-72"></a>      <span class='varop'>.</span>
-<a name="line-73"></a>      <span class='varid'>showString</span> <span class='str'>"?&gt;"</span>
-<a name="line-74"></a>      <span class='keyword'>where</span>
-<a name="line-75"></a>      <span class='varid'>showPiAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-76"></a>      <span class='varid'>showPiAttr</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-77"></a>	  <span class='keyglyph'>|</span> <span class='varid'>qualifiedName</span> <span class='varid'>an</span> <span class='varop'>==</span> <span class='varid'>a_value</span>
-<a name="line-78"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
-<a name="line-79"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-80"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>a</span>
-<a name="line-81"></a>      <span class='varid'>showPiAttr</span> <span class='keyword'>_</span>
-<a name="line-82"></a>	  <span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-83"></a>
-<a name="line-84"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>t</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>al</span> <span class='varop'>.</span> <span class='varid'>showSlash</span> <span class='varop'>.</span> <span class='varid'>showGt</span>
-<a name="line-86"></a>
-<a name="line-87"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>t</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-88"></a>    <span class='keyglyph'>=</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>al</span> <span class='varop'>.</span> <span class='varid'>showGt</span>
-<a name="line-89"></a>      <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
-<a name="line-90"></a>      <span class='varop'>.</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showSlash</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showGt</span>
-<a name="line-91"></a>
-<a name="line-92"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-93"></a>    <span class='keyglyph'>=</span> <span class='varid'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-94"></a>
-<a name="line-95"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-96"></a>    <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>an</span> <span class='varop'>.</span> <span class='varid'>showEq</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-97"></a>
-<a name="line-98"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>l</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
-<a name="line-99"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!-- ERROR ("</span> <span class='varop'>.</span> <span class='varid'>shows</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"):\n"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>e</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"\n--&gt;"</span>
-<a name="line-100"></a>
-<a name="line-101"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-102"></a>
-<a name="line-103"></a><a name="showXmlTrees"></a><span class='definition'>showXmlTrees</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-104"></a><span class='definition'>showXmlTrees</span>		<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showXmlTree</span>
-<a name="line-105"></a>
-<a name="line-106"></a><a name="showXmlTrees'"></a><span class='definition'>showXmlTrees'</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-107"></a><span class='definition'>showXmlTrees'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span> <span class='varop'>.</span> <span class='varid'>showNL</span> <span class='varop'>.</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showXmlTree</span>
-<a name="line-108"></a>
-<a name="line-109"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-110"></a>
-<a name="line-111"></a><a name="showQName"></a><span class='definition'>showQName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-112"></a><span class='definition'>showQName</span>
-<a name="line-113"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span>
-<a name="line-114"></a>
-<a name="line-115"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-116"></a>
-<a name="line-117"></a><a name="showQuoteString"></a><span class='definition'>showQuoteString</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-118"></a><span class='definition'>showQuoteString</span> <span class='varid'>s</span>
-<a name="line-119"></a>    <span class='keyglyph'>|</span> <span class='chr'>'\"'</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>
-<a name="line-120"></a>	<span class='keyglyph'>=</span> <span class='varid'>showApos</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>s</span> <span class='varop'>.</span> <span class='varid'>showApos</span>
-<a name="line-121"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-122"></a>	<span class='keyglyph'>=</span> <span class='varid'>showQuot</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>s</span> <span class='varop'>.</span> <span class='varid'>showQuot</span>
+<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>		<span class='comment'>-- XML Tree types</span>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
+<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>			<span class='layout'>(</span> <span class='varid'>mkDTDElem</span>
+<a name="line-30"></a>						<span class='layout'>,</span> <span class='varid'>getDTDAttrl</span>
+<a name="line-31"></a>						<span class='layout'>)</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-34"></a><span class='comment'>--</span>
+<a name="line-35"></a><span class='comment'>-- the toString conversion functions</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='comment'>-- |</span>
+<a name="line-38"></a><span class='comment'>-- convert the result of a filter into a string</span>
+<a name="line-39"></a><span class='comment'>--</span>
+<a name="line-40"></a><span class='comment'>-- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation </span>
+<a name="line-41"></a>
+<a name="line-42"></a><a name="xshow"></a><span class='definition'>xshow</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-43"></a><span class='definition'>xshow</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>			<span class='comment'>-- special case optimisation</span>
+<a name="line-44"></a><span class='definition'>xshow</span> <span class='varid'>ts</span>			<span class='keyglyph'>=</span> <span class='varid'>showXmlTrees</span> <span class='varid'>ts</span> <span class='str'>""</span>
+<a name="line-45"></a>
+<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="showXmlTree"></a><span class='definition'>showXmlTree</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-49"></a>
+<a name="line-50"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-51"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>s</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-54"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&amp;#"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>
+<a name="line-55"></a>
+<a name="line-56"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-57"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&amp;"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>r</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-60"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!--"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>c</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"--&gt;"</span>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;![CDATA["</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>d</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"]]&gt;"</span>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-66"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;?"</span>
+<a name="line-67"></a>      <span class='varop'>.</span>
+<a name="line-68"></a>      <span class='varid'>showQName</span> <span class='varid'>n</span>
+<a name="line-69"></a>      <span class='varop'>.</span>
+<a name="line-70"></a>      <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showPiAttr</span><span class='layout'>)</span> <span class='varid'>al</span>
+<a name="line-71"></a>      <span class='varop'>.</span>
+<a name="line-72"></a>      <span class='varid'>showString</span> <span class='str'>"?&gt;"</span>
+<a name="line-73"></a>      <span class='keyword'>where</span>
+<a name="line-74"></a>      <span class='varid'>showPiAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-75"></a>      <span class='varid'>showPiAttr</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-76"></a>	  <span class='keyglyph'>|</span> <span class='varid'>qualifiedName</span> <span class='varid'>an</span> <span class='varop'>==</span> <span class='varid'>a_value</span>
+<a name="line-77"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
+<a name="line-78"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-79"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>a</span>
+<a name="line-80"></a>      <span class='varid'>showPiAttr</span> <span class='keyword'>_</span>
+<a name="line-81"></a>	  <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-82"></a>
+<a name="line-83"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>t</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>al</span> <span class='varop'>.</span> <span class='varid'>showSlash</span> <span class='varop'>.</span> <span class='varid'>showGt</span>
+<a name="line-85"></a>
+<a name="line-86"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>t</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-87"></a>    <span class='keyglyph'>=</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>al</span> <span class='varop'>.</span> <span class='varid'>showGt</span>
+<a name="line-88"></a>      <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
+<a name="line-89"></a>      <span class='varop'>.</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showSlash</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showGt</span>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-92"></a>    <span class='keyglyph'>=</span> <span class='varid'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-95"></a>    <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>an</span> <span class='varop'>.</span> <span class='varid'>showEq</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-96"></a>
+<a name="line-97"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>l</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-98"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!-- ERROR ("</span> <span class='varop'>.</span> <span class='varid'>shows</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"):\n"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>e</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"\n--&gt;"</span>
+<a name="line-99"></a>
+<a name="line-100"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="showXmlTrees"></a><span class='definition'>showXmlTrees</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-103"></a><span class='definition'>showXmlTrees</span>		<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showXmlTree</span>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="showXmlTrees'"></a><span class='definition'>showXmlTrees'</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-106"></a><span class='definition'>showXmlTrees'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span> <span class='varop'>.</span> <span class='varid'>showNL</span> <span class='varop'>.</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showXmlTree</span>
+<a name="line-107"></a>
+<a name="line-108"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-109"></a>
+<a name="line-110"></a><a name="showQName"></a><span class='definition'>showQName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-111"></a><span class='definition'>showQName</span>
+<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-115"></a>
+<a name="line-116"></a><a name="showQuoteString"></a><span class='definition'>showQuoteString</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-117"></a><span class='definition'>showQuoteString</span> <span class='varid'>s</span>
+<a name="line-118"></a>    <span class='keyglyph'>|</span> <span class='chr'>'\"'</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>
+<a name="line-119"></a>	<span class='keyglyph'>=</span> <span class='varid'>showApos</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>s</span> <span class='varop'>.</span> <span class='varid'>showApos</span>
+<a name="line-120"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-121"></a>	<span class='keyglyph'>=</span> <span class='varid'>showQuot</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>s</span> <span class='varop'>.</span> <span class='varid'>showQuot</span>
+<a name="line-122"></a>
 <a name="line-123"></a>
-<a name="line-124"></a>
-<a name="line-125"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-126"></a>
-<a name="line-127"></a><a name="showAttr"></a><span class='definition'>showAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-128"></a><span class='definition'>showAttr</span> <span class='varid'>k</span> <span class='varid'>al</span>
-<a name="line-129"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varop'>$</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-130"></a>
-<a name="line-131"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-132"></a>
-<a name="line-133"></a><a name="showPEAttr"></a><span class='definition'>showPEAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-134"></a><span class='definition'>showPEAttr</span> <span class='varid'>al</span>
-<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>showPE</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>a_peref</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-136"></a>      <span class='keyword'>where</span>
-<a name="line-137"></a>      <span class='varid'>showPE</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>pe</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'%'</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>pe</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>
-<a name="line-138"></a>      <span class='varid'>showPE</span> <span class='conid'>Nothing</span>   <span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-139"></a>
-<a name="line-140"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-141"></a>
-<a name="line-142"></a><a name="showExternalId"></a><span class='definition'>showExternalId</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-143"></a><span class='definition'>showExternalId</span> <span class='varid'>al</span>
-<a name="line-144"></a>    <span class='keyglyph'>=</span> <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_system</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_public</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-145"></a>      <span class='keyword'>where</span>
-<a name="line-146"></a>      <span class='varid'>id2Str</span> <span class='conid'>Nothing</span>  <span class='conid'>Nothing</span>  <span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-147"></a>      <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>Nothing</span>  <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_system</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>s</span>
-<a name="line-148"></a>      <span class='varid'>id2Str</span> <span class='conid'>Nothing</span>  <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_public</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>p</span>
-<a name="line-149"></a>      <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_public</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>s</span>
-<a name="line-150"></a>
-<a name="line-151"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-152"></a>
-<a name="line-153"></a><a name="showNData"></a><span class='definition'>showNData</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-154"></a><span class='definition'>showNData</span> <span class='varid'>al</span>
-<a name="line-155"></a>    <span class='keyglyph'>=</span> <span class='varid'>nd2Str</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_ndata</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-156"></a>      <span class='keyword'>where</span>
-<a name="line-157"></a>      <span class='varid'>nd2Str</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-158"></a>      <span class='varid'>nd2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>v</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_ndata</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>v</span>
-<a name="line-159"></a>
-<a name="line-160"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-161"></a>
-<a name="line-162"></a><a name="showXmlDTD"></a><span class='definition'>showXmlDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-163"></a>
-<a name="line-164"></a><span class='definition'>showXmlDTD</span> <span class='conid'>DOCTYPE</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-165"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!DOCTYPE "</span>
-<a name="line-166"></a>      <span class='varop'>.</span>
-<a name="line-167"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-168"></a>      <span class='varop'>.</span>
-<a name="line-169"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>
-<a name="line-170"></a>      <span class='varop'>.</span>
-<a name="line-171"></a>      <span class='varid'>showInternalDTD</span> <span class='varid'>cs</span>
-<a name="line-172"></a>      <span class='varop'>.</span>
-<a name="line-173"></a>      <span class='varid'>showString</span> <span class='str'>"&gt;"</span>
-<a name="line-174"></a>      <span class='keyword'>where</span>
-<a name="line-175"></a>      <span class='varid'>showInternalDTD</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-176"></a>      <span class='varid'>showInternalDTD</span> <span class='varid'>ds</span> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" [\n"</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees'</span> <span class='varid'>ds</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>']'</span>
-<a name="line-177"></a>
-<a name="line-178"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-179"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ELEMENT "</span>
-<a name="line-180"></a>      <span class='varop'>.</span>
-<a name="line-181"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-182"></a>      <span class='varop'>.</span>
-<a name="line-183"></a>      <span class='varid'>showBlank</span>
-<a name="line-184"></a>      <span class='varop'>.</span>
-<a name="line-185"></a>      <span class='varid'>showElemType</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span>
-<a name="line-186"></a>      <span class='varop'>.</span>
-<a name="line-187"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
-<a name="line-188"></a>
-<a name="line-189"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-190"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ATTLIST "</span>
-<a name="line-191"></a>      <span class='varop'>.</span>
-<a name="line-192"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varop'>$</span> <span class='varid'>al</span>
-<a name="line-193"></a>	<span class='keyword'>then</span>
-<a name="line-194"></a>	<span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
-<a name="line-195"></a>	<span class='keyword'>else</span>
-<a name="line-196"></a>	<span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-197"></a>	<span class='varop'>.</span>
-<a name="line-198"></a>	<span class='varid'>showBlank</span>
-<a name="line-199"></a>	<span class='varop'>.</span>
-<a name="line-200"></a>	<span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al</span> <span class='keyword'>of</span>
-<a name="line-201"></a>	  <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>showPEAttr</span>
-<a name="line-202"></a>		       <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span>
-<a name="line-203"></a>		       <span class='varop'>.</span> <span class='varid'>head</span>
-<a name="line-204"></a>		     <span class='layout'>)</span> <span class='varid'>cs</span>
-<a name="line-205"></a>	  <span class='conid'>Just</span> <span class='varid'>a</span>  <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>showString</span> <span class='varid'>a</span>
-<a name="line-206"></a>	               <span class='varop'>.</span>
-<a name="line-207"></a>                       <span class='varid'>showAttrType</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-208"></a>                       <span class='varop'>.</span>
-<a name="line-209"></a>                       <span class='varid'>showAttrKind</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-210"></a>		     <span class='layout'>)</span>
-<a name="line-211"></a>	<span class='layout'>)</span>
-<a name="line-212"></a>      <span class='layout'>)</span>
-<a name="line-213"></a>      <span class='varop'>.</span>
-<a name="line-214"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
-<a name="line-215"></a>      <span class='keyword'>where</span>
-<a name="line-216"></a>      <span class='varid'>showAttrType</span> <span class='varid'>t</span>
-<a name="line-217"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>
-<a name="line-218"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>
-<a name="line-219"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span>
-<a name="line-220"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showAttrEnum</span>
-<a name="line-221"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_notation</span>
-<a name="line-222"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_notation</span> <span class='varop'>.</span> <span class='varid'>showAttrEnum</span>
-<a name="line-223"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-224"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>t</span>
-<a name="line-225"></a>
-<a name="line-226"></a>      <span class='varid'>showAttrEnum</span>
-<a name="line-227"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" ("</span>
-<a name="line-228"></a>	    <span class='varop'>.</span>
-<a name="line-229"></a>	    <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s1</span> <span class='varid'>s2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s1</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>" | "</span> <span class='varop'>.</span>  <span class='varid'>s2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getEnum</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-230"></a>	    <span class='varop'>.</span>
-<a name="line-231"></a>	    <span class='varid'>showString</span> <span class='str'>")"</span>
-<a name="line-232"></a>	    <span class='keyword'>where</span>
-<a name="line-233"></a>	    <span class='varid'>getEnum</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-234"></a>	    <span class='varid'>getEnum</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>l</span>
-<a name="line-235"></a>
-<a name="line-236"></a>      <span class='varid'>showAttrKind</span> <span class='varid'>k</span>
-<a name="line-237"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_default</span>
-<a name="line-238"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-239"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_fixed</span>
-<a name="line-240"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_fixed</span>
-<a name="line-241"></a>		<span class='varop'>.</span>
-<a name="line-242"></a>		<span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-243"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>""</span>
-<a name="line-244"></a>	      <span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-245"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-246"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k</span>
-<a name="line-247"></a>
-<a name="line-248"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NOTATION</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
-<a name="line-249"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!NOTATION "</span>
-<a name="line-250"></a>      <span class='varop'>.</span>
-<a name="line-251"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-252"></a>      <span class='varop'>.</span>
-<a name="line-253"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>
-<a name="line-254"></a>      <span class='varop'>.</span>
-<a name="line-255"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
-<a name="line-256"></a>
-<a name="line-257"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-258"></a>    <span class='keyglyph'>=</span> <span class='varid'>showEntity</span> <span class='str'>"% "</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-259"></a>
-<a name="line-260"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-261"></a>    <span class='keyglyph'>=</span> <span class='varid'>showEntity</span> <span class='str'>""</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-262"></a>
-<a name="line-263"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PEREF</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
-<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>
-<a name="line-265"></a>
-<a name="line-266"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONDSECT</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-267"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;![ "</span>
-<a name="line-268"></a>      <span class='varop'>.</span>
-<a name="line-269"></a>      <span class='varid'>showXmlTree</span> <span class='varid'>c1</span>
-<a name="line-270"></a>      <span class='varop'>.</span>
-<a name="line-271"></a>      <span class='varid'>showString</span> <span class='str'>" [\n"</span>
-<a name="line-272"></a>      <span class='varop'>.</span>
-<a name="line-273"></a>      <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
-<a name="line-274"></a>      <span class='varop'>.</span>
-<a name="line-275"></a>      <span class='varid'>showString</span> <span class='str'>"]]&gt;"</span>
-<a name="line-276"></a>
-<a name="line-277"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-278"></a>    <span class='keyglyph'>=</span> <span class='varid'>showContent</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-279"></a>
-<a name="line-280"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NAME</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
-<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-282"></a>
-<a name="line-283"></a><span class='definition'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
-<a name="line-284"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"NOT YET IMPLEMETED: "</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>de</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>" [...]\n"</span>
-<a name="line-285"></a>
-<a name="line-286"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-287"></a>
-<a name="line-288"></a><a name="showElemType"></a><span class='definition'>showElemType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-289"></a><span class='definition'>showElemType</span> <span class='varid'>t</span> <span class='varid'>cs</span>
-<a name="line-290"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_pcdata</span>
-<a name="line-291"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>v_pcdata</span> <span class='varop'>.</span> <span class='varid'>showRpar</span>
-<a name="line-292"></a>
-<a name="line-293"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>cs</span>
-<a name="line-294"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
-<a name="line-295"></a>	  <span class='varop'>.</span>
-<a name="line-296"></a>	  <span class='varid'>showString</span> <span class='varid'>v_pcdata</span>
-<a name="line-297"></a>	  <span class='varop'>.</span>
-<a name="line-298"></a>	  <span class='layout'>(</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mixedContent</span> <span class='varop'>.</span> <span class='varid'>selAttrl</span> <span class='varop'>.</span> <span class='varid'>getNode</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varid'>cs1</span>
-<a name="line-299"></a>	  <span class='varop'>.</span>
-<a name="line-300"></a>          <span class='varid'>showRpar</span>
-<a name="line-301"></a>	  <span class='varop'>.</span>
-<a name="line-302"></a>	  <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al1</span>
-<a name="line-303"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span>				<span class='comment'>-- incorrect tree, e.g. after erronius pe substitution</span>
-<a name="line-304"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
-<a name="line-305"></a>	  <span class='varop'>.</span>
-<a name="line-306"></a>	  <span class='varid'>showRpar</span>
-<a name="line-307"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>cs</span>
-<a name="line-308"></a>	<span class='keyglyph'>=</span> <span class='varid'>showContent</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-309"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span>
-<a name="line-310"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
-<a name="line-311"></a>	  <span class='varop'>.</span> <span class='varid'>showRpar</span>
-<a name="line-312"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>
-<a name="line-313"></a>	<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showContent</span> <span class='varop'>$</span> <span class='varid'>cs</span>
-<a name="line-314"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-315"></a>	<span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>t</span>
-<a name="line-316"></a>    <span class='keyword'>where</span>
-<a name="line-317"></a>    <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al1</span><span class='layout'>)</span> <span class='varid'>cs1</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span>
-<a name="line-318"></a>
-<a name="line-319"></a>    <span class='varid'>mixedContent</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-320"></a>    <span class='varid'>mixedContent</span> <span class='varid'>l</span>
-<a name="line-321"></a>	<span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" | "</span> <span class='varop'>.</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>l</span>
-<a name="line-322"></a>
-<a name="line-323"></a>    <span class='varid'>selAttrl</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='keyword'>as</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>as</span>
-<a name="line-324"></a>    <span class='varid'>selAttrl</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>tex</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>tex</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-325"></a>    <span class='varid'>selAttrl</span> <span class='keyword'>_</span>           <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-326"></a>
-<a name="line-327"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-328"></a>
-<a name="line-329"></a><a name="showContent"></a><span class='definition'>showContent</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-330"></a><span class='definition'>showContent</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-331"></a>    <span class='keyglyph'>=</span> <span class='varid'>cont2String</span> <span class='varid'>de</span>
-<a name="line-332"></a>      <span class='keyword'>where</span>
-<a name="line-333"></a>      <span class='varid'>cont2String</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-334"></a>      <span class='varid'>cont2String</span> <span class='conid'>NAME</span>
-<a name="line-335"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-336"></a>      <span class='varid'>cont2String</span> <span class='conid'>PEREF</span>
-<a name="line-337"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>
-<a name="line-338"></a>      <span class='varid'>cont2String</span> <span class='conid'>CONTENT</span>
-<a name="line-339"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
-<a name="line-340"></a>	    <span class='varop'>.</span>
-<a name="line-341"></a>	    <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varid'>combine</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>showContent</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-342"></a>            <span class='varop'>.</span>
-<a name="line-343"></a>            <span class='varid'>showRpar</span>
-<a name="line-344"></a>            <span class='varop'>.</span>
-<a name="line-345"></a>            <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al</span>
-<a name="line-346"></a>      <span class='varid'>cont2String</span> <span class='varid'>n</span>
-<a name="line-347"></a>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"cont2string "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span>
-<a name="line-348"></a>      <span class='varid'>combine</span> <span class='varid'>k</span> <span class='varid'>s1</span> <span class='varid'>s2</span>
-<a name="line-349"></a>	  <span class='keyglyph'>=</span> <span class='varid'>s1</span>
-<a name="line-350"></a>	    <span class='varop'>.</span>
-<a name="line-351"></a>	    <span class='varid'>showString</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_seq</span>
-<a name="line-352"></a>			 <span class='keyword'>then</span> <span class='str'>", "</span>
-<a name="line-353"></a>			 <span class='keyword'>else</span> <span class='str'>" | "</span>
-<a name="line-354"></a>		       <span class='layout'>)</span>
-<a name="line-355"></a>            <span class='varop'>.</span>
-<a name="line-356"></a>            <span class='varid'>s2</span>
-<a name="line-357"></a>
-<a name="line-358"></a><span class='definition'>showContent</span> <span class='varid'>n</span>
-<a name="line-359"></a>    <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>n</span>
-<a name="line-360"></a>
-<a name="line-361"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-362"></a>
-<a name="line-363"></a><a name="showEntity"></a><span class='definition'>showEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-364"></a>
-<a name="line-365"></a><span class='definition'>showEntity</span> <span class='varid'>kind</span> <span class='varid'>al</span> <span class='varid'>cs</span>
-<a name="line-366"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ENTITY "</span>
-<a name="line-367"></a>      <span class='varop'>.</span>
-<a name="line-368"></a>      <span class='varid'>showString</span> <span class='varid'>kind</span>
-<a name="line-369"></a>      <span class='varop'>.</span>
-<a name="line-370"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
-<a name="line-371"></a>      <span class='varop'>.</span>
-<a name="line-372"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>
-<a name="line-373"></a>      <span class='varop'>.</span>
-<a name="line-374"></a>      <span class='varid'>showNData</span> <span class='varid'>al</span>
-<a name="line-375"></a>      <span class='varop'>.</span>
-<a name="line-376"></a>      <span class='varid'>showEntityValue</span> <span class='varid'>cs</span>
-<a name="line-377"></a>      <span class='varop'>.</span>
-<a name="line-378"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
-<a name="line-379"></a>
-<a name="line-380"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-381"></a>
-<a name="line-382"></a><a name="showEntityValue"></a><span class='definition'>showEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-383"></a>
-<a name="line-384"></a><span class='definition'>showEntityValue</span> <span class='conid'>[]</span>
-<a name="line-385"></a>    <span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-386"></a>
-<a name="line-387"></a><span class='definition'>showEntityValue</span> <span class='varid'>cs</span>
-<a name="line-388"></a>    <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-389"></a>
-<a name="line-390"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-391"></a>
-<a name="line-392"></a><a name="showBlank"></a><span class='definition'>showBlank</span><span class='layout'>,</span>
-<a name="line-393"></a>  <span class='varid'>showEq</span><span class='layout'>,</span> <span class='varid'>showLt</span><span class='layout'>,</span> <span class='varid'>showGt</span><span class='layout'>,</span> <span class='varid'>showSlash</span><span class='layout'>,</span> <span class='varid'>showApos</span><span class='layout'>,</span> <span class='varid'>showQuot</span><span class='layout'>,</span> <span class='varid'>showLpar</span><span class='layout'>,</span> <span class='varid'>showRpar</span><span class='layout'>,</span> <span class='varid'>showNL</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-394"></a>
-<a name="line-395"></a><span class='definition'>showBlank</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>' '</span>
-<a name="line-396"></a><a name="showEq"></a><span class='definition'>showEq</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'='</span>
-<a name="line-397"></a><a name="showLt"></a><span class='definition'>showLt</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'&lt;'</span>
-<a name="line-398"></a><a name="showGt"></a><span class='definition'>showGt</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'&gt;'</span>
-<a name="line-399"></a><a name="showSlash"></a><span class='definition'>showSlash</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'/'</span>
-<a name="line-400"></a><a name="showApos"></a><span class='definition'>showApos</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\''</span>
-<a name="line-401"></a><a name="showQuot"></a><span class='definition'>showQuot</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\"'</span>
-<a name="line-402"></a><a name="showLpar"></a><span class='definition'>showLpar</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'('</span>
-<a name="line-403"></a><a name="showRpar"></a><span class='definition'>showRpar</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>')'</span>
-<a name="line-404"></a><a name="showNL"></a><span class='definition'>showNL</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\n'</span>
-<a name="line-405"></a>
-<a name="line-406"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-124"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="showAttr"></a><span class='definition'>showAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-127"></a><span class='definition'>showAttr</span> <span class='varid'>k</span> <span class='varid'>al</span>
+<a name="line-128"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varop'>$</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-129"></a>
+<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="showPEAttr"></a><span class='definition'>showPEAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-133"></a><span class='definition'>showPEAttr</span> <span class='varid'>al</span>
+<a name="line-134"></a>    <span class='keyglyph'>=</span> <span class='varid'>showPE</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>a_peref</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-135"></a>      <span class='keyword'>where</span>
+<a name="line-136"></a>      <span class='varid'>showPE</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>pe</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'%'</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>pe</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>
+<a name="line-137"></a>      <span class='varid'>showPE</span> <span class='conid'>Nothing</span>   <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-138"></a>
+<a name="line-139"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="showExternalId"></a><span class='definition'>showExternalId</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-142"></a><span class='definition'>showExternalId</span> <span class='varid'>al</span>
+<a name="line-143"></a>    <span class='keyglyph'>=</span> <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_system</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_public</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-144"></a>      <span class='keyword'>where</span>
+<a name="line-145"></a>      <span class='varid'>id2Str</span> <span class='conid'>Nothing</span>  <span class='conid'>Nothing</span>  <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-146"></a>      <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>Nothing</span>  <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_system</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>s</span>
+<a name="line-147"></a>      <span class='varid'>id2Str</span> <span class='conid'>Nothing</span>  <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_public</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>p</span>
+<a name="line-148"></a>      <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_public</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>s</span>
+<a name="line-149"></a>
+<a name="line-150"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-151"></a>
+<a name="line-152"></a><a name="showNData"></a><span class='definition'>showNData</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-153"></a><span class='definition'>showNData</span> <span class='varid'>al</span>
+<a name="line-154"></a>    <span class='keyglyph'>=</span> <span class='varid'>nd2Str</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_ndata</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-155"></a>      <span class='keyword'>where</span>
+<a name="line-156"></a>      <span class='varid'>nd2Str</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-157"></a>      <span class='varid'>nd2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>v</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_ndata</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>v</span>
+<a name="line-158"></a>
+<a name="line-159"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="showXmlDTD"></a><span class='definition'>showXmlDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-162"></a>
+<a name="line-163"></a><span class='definition'>showXmlDTD</span> <span class='conid'>DOCTYPE</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-164"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!DOCTYPE "</span>
+<a name="line-165"></a>      <span class='varop'>.</span>
+<a name="line-166"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-167"></a>      <span class='varop'>.</span>
+<a name="line-168"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>
+<a name="line-169"></a>      <span class='varop'>.</span>
+<a name="line-170"></a>      <span class='varid'>showInternalDTD</span> <span class='varid'>cs</span>
+<a name="line-171"></a>      <span class='varop'>.</span>
+<a name="line-172"></a>      <span class='varid'>showString</span> <span class='str'>"&gt;"</span>
+<a name="line-173"></a>      <span class='keyword'>where</span>
+<a name="line-174"></a>      <span class='varid'>showInternalDTD</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-175"></a>      <span class='varid'>showInternalDTD</span> <span class='varid'>ds</span> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" [\n"</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees'</span> <span class='varid'>ds</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>']'</span>
+<a name="line-176"></a>
+<a name="line-177"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-178"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ELEMENT "</span>
+<a name="line-179"></a>      <span class='varop'>.</span>
+<a name="line-180"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-181"></a>      <span class='varop'>.</span>
+<a name="line-182"></a>      <span class='varid'>showBlank</span>
+<a name="line-183"></a>      <span class='varop'>.</span>
+<a name="line-184"></a>      <span class='varid'>showElemType</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-185"></a>      <span class='varop'>.</span>
+<a name="line-186"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
+<a name="line-187"></a>
+<a name="line-188"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-189"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ATTLIST "</span>
+<a name="line-190"></a>      <span class='varop'>.</span>
+<a name="line-191"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varop'>$</span> <span class='varid'>al</span>
+<a name="line-192"></a>	<span class='keyword'>then</span>
+<a name="line-193"></a>	<span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
+<a name="line-194"></a>	<span class='keyword'>else</span>
+<a name="line-195"></a>	<span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-196"></a>	<span class='varop'>.</span>
+<a name="line-197"></a>	<span class='varid'>showBlank</span>
+<a name="line-198"></a>	<span class='varop'>.</span>
+<a name="line-199"></a>	<span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al</span> <span class='keyword'>of</span>
+<a name="line-200"></a>	  <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>showPEAttr</span>
+<a name="line-201"></a>		       <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span>
+<a name="line-202"></a>		       <span class='varop'>.</span> <span class='varid'>head</span>
+<a name="line-203"></a>		     <span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-204"></a>	  <span class='conid'>Just</span> <span class='varid'>a</span>  <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>showString</span> <span class='varid'>a</span>
+<a name="line-205"></a>	               <span class='varop'>.</span>
+<a name="line-206"></a>                       <span class='varid'>showAttrType</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-207"></a>                       <span class='varop'>.</span>
+<a name="line-208"></a>                       <span class='varid'>showAttrKind</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-209"></a>		     <span class='layout'>)</span>
+<a name="line-210"></a>	<span class='layout'>)</span>
+<a name="line-211"></a>      <span class='layout'>)</span>
+<a name="line-212"></a>      <span class='varop'>.</span>
+<a name="line-213"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
+<a name="line-214"></a>      <span class='keyword'>where</span>
+<a name="line-215"></a>      <span class='varid'>showAttrType</span> <span class='varid'>t</span>
+<a name="line-216"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>
+<a name="line-217"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>
+<a name="line-218"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span>
+<a name="line-219"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showAttrEnum</span>
+<a name="line-220"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_notation</span>
+<a name="line-221"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_notation</span> <span class='varop'>.</span> <span class='varid'>showAttrEnum</span>
+<a name="line-222"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-223"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>t</span>
+<a name="line-224"></a>
+<a name="line-225"></a>      <span class='varid'>showAttrEnum</span>
+<a name="line-226"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" ("</span>
+<a name="line-227"></a>	    <span class='varop'>.</span>
+<a name="line-228"></a>	    <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s1</span> <span class='varid'>s2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s1</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>" | "</span> <span class='varop'>.</span>  <span class='varid'>s2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getEnum</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-229"></a>	    <span class='varop'>.</span>
+<a name="line-230"></a>	    <span class='varid'>showString</span> <span class='str'>")"</span>
+<a name="line-231"></a>	    <span class='keyword'>where</span>
+<a name="line-232"></a>	    <span class='varid'>getEnum</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-233"></a>	    <span class='varid'>getEnum</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>l</span>
+<a name="line-234"></a>
+<a name="line-235"></a>      <span class='varid'>showAttrKind</span> <span class='varid'>k</span>
+<a name="line-236"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_default</span>
+<a name="line-237"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-238"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_fixed</span>
+<a name="line-239"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_fixed</span>
+<a name="line-240"></a>		<span class='varop'>.</span>
+<a name="line-241"></a>		<span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-242"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-243"></a>	      <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-244"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-245"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k</span>
+<a name="line-246"></a>
+<a name="line-247"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NOTATION</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
+<a name="line-248"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!NOTATION "</span>
+<a name="line-249"></a>      <span class='varop'>.</span>
+<a name="line-250"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-251"></a>      <span class='varop'>.</span>
+<a name="line-252"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>
+<a name="line-253"></a>      <span class='varop'>.</span>
+<a name="line-254"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
+<a name="line-255"></a>
+<a name="line-256"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-257"></a>    <span class='keyglyph'>=</span> <span class='varid'>showEntity</span> <span class='str'>"% "</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-258"></a>
+<a name="line-259"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-260"></a>    <span class='keyglyph'>=</span> <span class='varid'>showEntity</span> <span class='str'>""</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-261"></a>
+<a name="line-262"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PEREF</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
+<a name="line-263"></a>    <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>
+<a name="line-264"></a>
+<a name="line-265"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONDSECT</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-266"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;![ "</span>
+<a name="line-267"></a>      <span class='varop'>.</span>
+<a name="line-268"></a>      <span class='varid'>showXmlTree</span> <span class='varid'>c1</span>
+<a name="line-269"></a>      <span class='varop'>.</span>
+<a name="line-270"></a>      <span class='varid'>showString</span> <span class='str'>" [\n"</span>
+<a name="line-271"></a>      <span class='varop'>.</span>
+<a name="line-272"></a>      <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>
+<a name="line-273"></a>      <span class='varop'>.</span>
+<a name="line-274"></a>      <span class='varid'>showString</span> <span class='str'>"]]&gt;"</span>
+<a name="line-275"></a>
+<a name="line-276"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-277"></a>    <span class='keyglyph'>=</span> <span class='varid'>showContent</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-278"></a>
+<a name="line-279"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NAME</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
+<a name="line-280"></a>    <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-281"></a>
+<a name="line-282"></a><span class='definition'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='sel'>_cs</span>
+<a name="line-283"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"NOT YET IMPLEMETED: "</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>de</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>" [...]\n"</span>
+<a name="line-284"></a>
+<a name="line-285"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-286"></a>
+<a name="line-287"></a><a name="showElemType"></a><span class='definition'>showElemType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-288"></a><span class='definition'>showElemType</span> <span class='varid'>t</span> <span class='varid'>cs</span>
+<a name="line-289"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_pcdata</span>
+<a name="line-290"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>v_pcdata</span> <span class='varop'>.</span> <span class='varid'>showRpar</span>
+<a name="line-291"></a>
+<a name="line-292"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-293"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
+<a name="line-294"></a>	  <span class='varop'>.</span>
+<a name="line-295"></a>	  <span class='varid'>showString</span> <span class='varid'>v_pcdata</span>
+<a name="line-296"></a>	  <span class='varop'>.</span>
+<a name="line-297"></a>	  <span class='layout'>(</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mixedContent</span> <span class='varop'>.</span> <span class='varid'>selAttrl</span> <span class='varop'>.</span> <span class='varid'>getNode</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varid'>cs1</span>
+<a name="line-298"></a>	  <span class='varop'>.</span>
+<a name="line-299"></a>          <span class='varid'>showRpar</span>
+<a name="line-300"></a>	  <span class='varop'>.</span>
+<a name="line-301"></a>	  <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al1</span>
+<a name="line-302"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span>				<span class='comment'>-- incorrect tree, e.g. after erronius pe substitution</span>
+<a name="line-303"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
+<a name="line-304"></a>	  <span class='varop'>.</span>
+<a name="line-305"></a>	  <span class='varid'>showRpar</span>
+<a name="line-306"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-307"></a>	<span class='keyglyph'>=</span> <span class='varid'>showContent</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-308"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span>
+<a name="line-309"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
+<a name="line-310"></a>	  <span class='varop'>.</span> <span class='varid'>showRpar</span>
+<a name="line-311"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>
+<a name="line-312"></a>	<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showContent</span> <span class='varop'>$</span> <span class='varid'>cs</span>
+<a name="line-313"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-314"></a>	<span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>t</span>
+<a name="line-315"></a>    <span class='keyword'>where</span>
+<a name="line-316"></a>    <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al1</span><span class='layout'>)</span> <span class='varid'>cs1</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span>
+<a name="line-317"></a>
+<a name="line-318"></a>    <span class='varid'>mixedContent</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-319"></a>    <span class='varid'>mixedContent</span> <span class='varid'>l</span>
+<a name="line-320"></a>	<span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" | "</span> <span class='varop'>.</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>l</span>
+<a name="line-321"></a>
+<a name="line-322"></a>    <span class='varid'>selAttrl</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='keyword'>as</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>as</span>
+<a name="line-323"></a>    <span class='varid'>selAttrl</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>tex</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>tex</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-324"></a>    <span class='varid'>selAttrl</span> <span class='keyword'>_</span>           <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-325"></a>
+<a name="line-326"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-327"></a>
+<a name="line-328"></a><a name="showContent"></a><span class='definition'>showContent</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-329"></a><span class='definition'>showContent</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-330"></a>    <span class='keyglyph'>=</span> <span class='varid'>cont2String</span> <span class='varid'>de</span>
+<a name="line-331"></a>      <span class='keyword'>where</span>
+<a name="line-332"></a>      <span class='varid'>cont2String</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-333"></a>      <span class='varid'>cont2String</span> <span class='conid'>NAME</span>
+<a name="line-334"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-335"></a>      <span class='varid'>cont2String</span> <span class='conid'>PEREF</span>
+<a name="line-336"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>
+<a name="line-337"></a>      <span class='varid'>cont2String</span> <span class='conid'>CONTENT</span>
+<a name="line-338"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>
+<a name="line-339"></a>	    <span class='varop'>.</span>
+<a name="line-340"></a>	    <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varid'>combine</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>showContent</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-341"></a>            <span class='varop'>.</span>
+<a name="line-342"></a>            <span class='varid'>showRpar</span>
+<a name="line-343"></a>            <span class='varop'>.</span>
+<a name="line-344"></a>            <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al</span>
+<a name="line-345"></a>      <span class='varid'>cont2String</span> <span class='varid'>n</span>
+<a name="line-346"></a>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"cont2string "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span>
+<a name="line-347"></a>      <span class='varid'>combine</span> <span class='varid'>k</span> <span class='varid'>s1</span> <span class='varid'>s2</span>
+<a name="line-348"></a>	  <span class='keyglyph'>=</span> <span class='varid'>s1</span>
+<a name="line-349"></a>	    <span class='varop'>.</span>
+<a name="line-350"></a>	    <span class='varid'>showString</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_seq</span>
+<a name="line-351"></a>			 <span class='keyword'>then</span> <span class='str'>", "</span>
+<a name="line-352"></a>			 <span class='keyword'>else</span> <span class='str'>" | "</span>
+<a name="line-353"></a>		       <span class='layout'>)</span>
+<a name="line-354"></a>            <span class='varop'>.</span>
+<a name="line-355"></a>            <span class='varid'>s2</span>
+<a name="line-356"></a>
+<a name="line-357"></a><span class='definition'>showContent</span> <span class='varid'>n</span>
+<a name="line-358"></a>    <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>n</span>
+<a name="line-359"></a>
+<a name="line-360"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-361"></a>
+<a name="line-362"></a><a name="showEntity"></a><span class='definition'>showEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-363"></a>
+<a name="line-364"></a><span class='definition'>showEntity</span> <span class='varid'>kind</span> <span class='varid'>al</span> <span class='varid'>cs</span>
+<a name="line-365"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ENTITY "</span>
+<a name="line-366"></a>      <span class='varop'>.</span>
+<a name="line-367"></a>      <span class='varid'>showString</span> <span class='varid'>kind</span>
+<a name="line-368"></a>      <span class='varop'>.</span>
+<a name="line-369"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-370"></a>      <span class='varop'>.</span>
+<a name="line-371"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>
+<a name="line-372"></a>      <span class='varop'>.</span>
+<a name="line-373"></a>      <span class='varid'>showNData</span> <span class='varid'>al</span>
+<a name="line-374"></a>      <span class='varop'>.</span>
+<a name="line-375"></a>      <span class='varid'>showEntityValue</span> <span class='varid'>cs</span>
+<a name="line-376"></a>      <span class='varop'>.</span>
+<a name="line-377"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>
+<a name="line-378"></a>
+<a name="line-379"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-380"></a>
+<a name="line-381"></a><a name="showEntityValue"></a><span class='definition'>showEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-382"></a>
+<a name="line-383"></a><span class='definition'>showEntityValue</span> <span class='conid'>[]</span>
+<a name="line-384"></a>    <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-385"></a>
+<a name="line-386"></a><span class='definition'>showEntityValue</span> <span class='varid'>cs</span>
+<a name="line-387"></a>    <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-388"></a>
+<a name="line-389"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-390"></a>
+<a name="line-391"></a><a name="showBlank"></a><span class='definition'>showBlank</span><span class='layout'>,</span>
+<a name="line-392"></a>  <span class='varid'>showEq</span><span class='layout'>,</span> <span class='varid'>showLt</span><span class='layout'>,</span> <span class='varid'>showGt</span><span class='layout'>,</span> <span class='varid'>showSlash</span><span class='layout'>,</span> <span class='varid'>showApos</span><span class='layout'>,</span> <span class='varid'>showQuot</span><span class='layout'>,</span> <span class='varid'>showLpar</span><span class='layout'>,</span> <span class='varid'>showRpar</span><span class='layout'>,</span> <span class='varid'>showNL</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-393"></a>
+<a name="line-394"></a><span class='definition'>showBlank</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>' '</span>
+<a name="line-395"></a><a name="showEq"></a><span class='definition'>showEq</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'='</span>
+<a name="line-396"></a><a name="showLt"></a><span class='definition'>showLt</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'&lt;'</span>
+<a name="line-397"></a><a name="showGt"></a><span class='definition'>showGt</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'&gt;'</span>
+<a name="line-398"></a><a name="showSlash"></a><span class='definition'>showSlash</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'/'</span>
+<a name="line-399"></a><a name="showApos"></a><span class='definition'>showApos</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\''</span>
+<a name="line-400"></a><a name="showQuot"></a><span class='definition'>showQuot</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\"'</span>
+<a name="line-401"></a><a name="showLpar"></a><span class='definition'>showLpar</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'('</span>
+<a name="line-402"></a><a name="showRpar"></a><span class='definition'>showRpar</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>')'</span>
+<a name="line-403"></a><a name="showNL"></a><span class='definition'>showNL</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\n'</span>
+<a name="line-404"></a>
+<a name="line-405"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html
@@ -37,7 +37,7 @@
 <a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
 <a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>
 <a name="line-31"></a>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span> <span class='varid'>hiding</span> <span class='layout'>(</span> <span class='conid'>QN</span> <span class='layout'>)</span>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>
 <a name="line-33"></a>
 <a name="line-34"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
 <a name="line-35"></a><span class='comment'>--</span>
@@ -137,49 +137,40 @@
 <a name="line-129"></a>
 <a name="line-130"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
 <a name="line-131"></a><span class='comment'>--</span>
-<a name="line-132"></a>
-<a name="line-133"></a><span class='comment'>-- |</span>
-<a name="line-134"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>
-<a name="line-135"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>
-<a name="line-136"></a>
-<a name="line-137"></a><a name="NsEnv"></a><span class='keyword'>type</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>=</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-138"></a>
-<a name="line-139"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-140"></a><span class='comment'>--</span>
-<a name="line-141"></a><span class='comment'>-- Constants for error levels</span>
-<a name="line-142"></a>
-<a name="line-143"></a><a name="c_ok"></a><span class='comment'>-- | no error, everything is ok</span>
-<a name="line-144"></a><span class='definition'>c_ok</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span>
-<a name="line-145"></a><span class='definition'>c_ok</span>	<span class='keyglyph'>=</span> <span class='num'>0</span>
-<a name="line-146"></a>
-<a name="line-147"></a><a name="c_warn"></a><span class='comment'>-- | Error level for XError, type warning</span>
-<a name="line-148"></a><span class='definition'>c_warn</span>  <span class='keyglyph'>::</span> <span class='conid'>Int</span>
-<a name="line-149"></a><span class='definition'>c_warn</span>  <span class='keyglyph'>=</span> <span class='varid'>c_ok</span> <span class='varop'>+</span> <span class='num'>1</span>
-<a name="line-150"></a>
-<a name="line-151"></a><a name="c_err"></a><span class='comment'>-- | Error level for XError, type error</span>
-<a name="line-152"></a><span class='definition'>c_err</span>   <span class='keyglyph'>::</span> <span class='conid'>Int</span>
-<a name="line-153"></a><span class='definition'>c_err</span>   <span class='keyglyph'>=</span> <span class='varid'>c_warn</span> <span class='varop'>+</span> <span class='num'>1</span>
-<a name="line-154"></a>
-<a name="line-155"></a><a name="c_fatal"></a><span class='comment'>-- | Error level for XError, type fatal error</span>
-<a name="line-156"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>
-<a name="line-157"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>=</span> <span class='varid'>c_err</span> <span class='varop'>+</span> <span class='num'>1</span>
-<a name="line-158"></a>
-<a name="line-159"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-160"></a>
-<a name="line-161"></a><span class='comment'>-- | data type for representing a set of nodes as a tree structure</span>
-<a name="line-162"></a><span class='comment'>--</span>
-<a name="line-163"></a><span class='comment'>-- this structure is e.g. used to repesent the result of an XPath query</span>
-<a name="line-164"></a><span class='comment'>-- such that the selected nodes can be processed or selected later in</span>
-<a name="line-165"></a><span class='comment'>-- processing a document tree</span>
-<a name="line-166"></a>
-<a name="line-167"></a><a name="XmlNodeSet"></a><span class='keyword'>data</span> <span class='conid'>XmlNodeSet</span>	<span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='layout'>{</span> <span class='varid'>thisNode</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>		<span class='comment'>-- ^ is this node part of the set ?</span>
-<a name="line-168"></a>		      <span class='layout'>,</span> <span class='varid'>attrNodes</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span>	<span class='comment'>-- ^ the set of attribute nodes</span>
-<a name="line-169"></a>		      <span class='layout'>,</span> <span class='varid'>childNodes</span>	<span class='keyglyph'>::</span> <span class='conid'>ChildNodes</span>	<span class='comment'>-- ^ the set of child nodes, a list of pairs of index and node set </span>
-<a name="line-170"></a>		      <span class='layout'>}</span>
-<a name="line-171"></a>		  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>
-<a name="line-172"></a>
-<a name="line-173"></a><a name="ChildNodes"></a><span class='keyword'>type</span> <span class='conid'>ChildNodes</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>XmlNodeSet</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-174"></a>
-<a name="line-175"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-132"></a><span class='comment'>-- Constants for error levels</span>
+<a name="line-133"></a>
+<a name="line-134"></a><a name="c_ok"></a><span class='comment'>-- | no error, everything is ok</span>
+<a name="line-135"></a><span class='definition'>c_ok</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-136"></a><span class='definition'>c_ok</span>	<span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="c_warn"></a><span class='comment'>-- | Error level for XError, type warning</span>
+<a name="line-139"></a><span class='definition'>c_warn</span>  <span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-140"></a><span class='definition'>c_warn</span>  <span class='keyglyph'>=</span> <span class='varid'>c_ok</span> <span class='varop'>+</span> <span class='num'>1</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="c_err"></a><span class='comment'>-- | Error level for XError, type error</span>
+<a name="line-143"></a><span class='definition'>c_err</span>   <span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-144"></a><span class='definition'>c_err</span>   <span class='keyglyph'>=</span> <span class='varid'>c_warn</span> <span class='varop'>+</span> <span class='num'>1</span>
+<a name="line-145"></a>
+<a name="line-146"></a><a name="c_fatal"></a><span class='comment'>-- | Error level for XError, type fatal error</span>
+<a name="line-147"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-148"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>=</span> <span class='varid'>c_err</span> <span class='varop'>+</span> <span class='num'>1</span>
+<a name="line-149"></a>
+<a name="line-150"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='comment'>-- | data type for representing a set of nodes as a tree structure</span>
+<a name="line-153"></a><span class='comment'>--</span>
+<a name="line-154"></a><span class='comment'>-- this structure is e.g. used to repesent the result of an XPath query</span>
+<a name="line-155"></a><span class='comment'>-- such that the selected nodes can be processed or selected later in</span>
+<a name="line-156"></a><span class='comment'>-- processing a document tree</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="XmlNodeSet"></a><span class='keyword'>data</span> <span class='conid'>XmlNodeSet</span>	<span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='layout'>{</span> <span class='varid'>thisNode</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>		<span class='comment'>-- ^ is this node part of the set ?</span>
+<a name="line-159"></a>		      <span class='layout'>,</span> <span class='varid'>attrNodes</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span>	<span class='comment'>-- ^ the set of attribute nodes</span>
+<a name="line-160"></a>		      <span class='layout'>,</span> <span class='varid'>childNodes</span>	<span class='keyglyph'>::</span> <span class='conid'>ChildNodes</span>	<span class='comment'>-- ^ the set of child nodes, a list of pairs of index and node set </span>
+<a name="line-161"></a>		      <span class='layout'>}</span>
+<a name="line-162"></a>		  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>
+<a name="line-163"></a>
+<a name="line-164"></a><a name="ChildNodes"></a><span class='keyword'>type</span> <span class='conid'>ChildNodes</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>XmlNodeSet</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html b/doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html
@@ -10,1106 +10,1105 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.DOM.Unicode
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
-<a name="line-6"></a>   License    : MIT
-<a name="line-7"></a>
-<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-<a name="line-9"></a>   Stability  : experimental
-<a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id$
-<a name="line-12"></a>
-<a name="line-13"></a>   Unicode and UTF-8 Conversion Functions
-<a name="line-14"></a>
-<a name="line-15"></a>-}</span>
-<a name="line-16"></a>
-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
-<a name="line-20"></a>    <span class='layout'>(</span>
-<a name="line-21"></a>     <span class='comment'>-- * Unicode Type declarations</span>
-<a name="line-22"></a>     <span class='conid'>Unicode</span><span class='layout'>,</span>
-<a name="line-23"></a>     <span class='conid'>UString</span><span class='layout'>,</span>
-<a name="line-24"></a>     <span class='conid'>UTF8Char</span><span class='layout'>,</span>
-<a name="line-25"></a>     <span class='conid'>UTF8String</span><span class='layout'>,</span>
-<a name="line-26"></a>     <span class='conid'>UStringWithErrors</span><span class='layout'>,</span>
-<a name="line-27"></a>     <span class='conid'>DecodingFct</span><span class='layout'>,</span>
-<a name="line-28"></a>     <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>,</span>
-<a name="line-29"></a>
-<a name="line-30"></a>      <span class='comment'>-- * XML char predicates</span>
-<a name="line-31"></a>
-<a name="line-32"></a>      <span class='varid'>isXmlChar</span>
-<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>isXmlLatin1Char</span>
-<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>isXmlSpaceChar</span>
-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>isXml11SpaceChar</span>
-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNameChar</span>
-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNameStartChar</span>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>
-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameStartChar</span>
-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>isXmlPubidChar</span>
-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>isXmlLetter</span>
-<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>isXmlBaseChar</span>
-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isXmlIdeographicChar</span>
-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isXmlCombiningChar</span>
-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>isXmlDigit</span>
-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>isXmlExtender</span>
-<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>isXmlControlOrPermanentlyUndefined</span>
-<a name="line-48"></a>
-<a name="line-49"></a>      <span class='comment'>-- * UTF-8 and Unicode conversion functions</span>
-<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>utf8ToUnicode</span>
-<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>utf8ToUnicodeEmbedErrors</span>
-<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>latin1ToUnicode</span>
-<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>ucs2ToUnicode</span>
-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>ucs2BigEndianToUnicode</span>
-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>ucs2LittleEndianToUnicode</span>
-<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>utf16beToUnicode</span>
-<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>utf16leToUnicode</span>
-<a name="line-58"></a>
-<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>unicodeCharToUtf8</span>
-<a name="line-60"></a>
-<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToUtf8</span>
-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToXmlEntity</span>
-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToLatin1</span>
-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneAscii</span>
-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneLatin1</span>
-<a name="line-66"></a>
-<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRef</span>
-<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRefHex</span>
-<a name="line-69"></a>
-<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>getDecodingFct</span>
-<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>getDecodingFctEmbedErrors</span>
-<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>getOutputEncodingFct</span>
-<a name="line-73"></a>
-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNL</span>
-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>guessEncoding</span>
-<a name="line-76"></a>    <span class='layout'>)</span>
-<a name="line-77"></a><span class='keyword'>where</span>
-<a name="line-78"></a>
-<a name="line-79"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='layout'>(</span> <span class='varid'>toUpper</span> <span class='layout'>)</span>
-<a name="line-80"></a>
-<a name="line-81"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span> <span class='layout'>(</span> <span class='varid'>swap</span><span class='layout'>,</span> <span class='varid'>partitionEither</span> <span class='layout'>)</span>
-<a name="line-82"></a>
-<a name="line-83"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>IsoLatinTables</span>
-<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>UTF8Decoding</span>	<span class='layout'>(</span> <span class='varid'>decodeUtf8</span><span class='layout'>,</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='layout'>)</span>
-<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>		<span class='layout'>(</span> <span class='varid'>intToHexString</span> <span class='layout'>)</span>
-<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
-<a name="line-87"></a>
-<a name="line-88"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-89"></a>
-<a name="line-90"></a><span class='comment'>-- | Unicode is represented as the Char type</span>
-<a name="line-91"></a><span class='comment'>--   Precondition for this is the support of Unicode character range</span>
-<a name="line-92"></a><span class='comment'>--   in the compiler (e.g. ghc but not hugs)</span>
-<a name="line-93"></a>
-<a name="line-94"></a><a name="Unicode"></a><span class='keyword'>type</span> <span class='conid'>Unicode</span>	<span class='keyglyph'>=</span> <span class='conid'>Char</span>
-<a name="line-95"></a>
-<a name="line-96"></a><span class='comment'>-- | the type for Unicode strings</span>
-<a name="line-97"></a>
-<a name="line-98"></a><a name="UString"></a><span class='keyword'>type</span> <span class='conid'>UString</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Unicode</span><span class='keyglyph'>]</span>
-<a name="line-99"></a>
-<a name="line-100"></a><span class='comment'>-- | UTF-8 charachters are represented by the Char type</span>
-<a name="line-101"></a>
-<a name="line-102"></a><a name="UTF8Char"></a><span class='keyword'>type</span> <span class='conid'>UTF8Char</span>	<span class='keyglyph'>=</span> <span class='conid'>Char</span>
-<a name="line-103"></a>
-<a name="line-104"></a><span class='comment'>-- | UTF-8 strings are implemented as Haskell strings</span>
-<a name="line-105"></a>
-<a name="line-106"></a><a name="UTF8String"></a><span class='keyword'>type</span> <span class='conid'>UTF8String</span>	<span class='keyglyph'>=</span> <span class='conid'>String</span>
-<a name="line-107"></a>
-<a name="line-108"></a><span class='comment'>-- | Decoding function with a pair containing the result string and a list of decoding errors as result</span>
-<a name="line-109"></a>
-<a name="line-110"></a><a name="DecodingFct"></a><span class='keyword'>type</span> <span class='conid'>DecodingFct</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>UString</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-111"></a>
-<a name="line-112"></a><a name="UStringWithErrors"></a><span class='keyword'>type</span> <span class='conid'>UStringWithErrors</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>Char</span><span class='keyglyph'>]</span>
-<a name="line-113"></a>
-<a name="line-114"></a><span class='comment'>-- | Decoding function where decoding errors are interleaved with decoded characters</span>
-<a name="line-115"></a>
-<a name="line-116"></a><a name="DecodingFctEmbedErrors"></a><span class='keyword'>type</span> <span class='conid'>DecodingFctEmbedErrors</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UStringWithErrors</span>
-<a name="line-117"></a>
-<a name="line-118"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-119"></a><span class='comment'>--</span>
-<a name="line-120"></a><span class='comment'>-- Unicode predicates</span>
-<a name="line-121"></a>
-<a name="line-122"></a><span class='comment'>-- |</span>
-<a name="line-123"></a><span class='comment'>-- test for a legal 1 byte XML char</span>
-<a name="line-124"></a>
-<a name="line-125"></a><a name="is1ByteXmlChar"></a><span class='definition'>is1ByteXmlChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-126"></a><span class='definition'>is1ByteXmlChar</span> <span class='varid'>c</span>
-<a name="line-127"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&lt;</span> <span class='chr'>'\x80'</span>
-<a name="line-128"></a>      <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>' '</span>
-<a name="line-129"></a>	   <span class='varop'>||</span>
-<a name="line-130"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\n'</span>
-<a name="line-131"></a>	   <span class='varop'>||</span>
-<a name="line-132"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\t'</span>
-<a name="line-133"></a>	   <span class='varop'>||</span>
-<a name="line-134"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\r'</span>
-<a name="line-135"></a>	 <span class='layout'>)</span>
-<a name="line-136"></a>
-<a name="line-137"></a><span class='comment'>-- |</span>
-<a name="line-138"></a><span class='comment'>-- test for a legal latin1 XML char</span>
-<a name="line-139"></a>
-<a name="line-140"></a><a name="isXmlLatin1Char"></a><span class='definition'>isXmlLatin1Char</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-141"></a><span class='definition'>isXmlLatin1Char</span> <span class='varid'>i</span>
-<a name="line-142"></a>    <span class='keyglyph'>=</span> <span class='varid'>is1ByteXmlChar</span> <span class='varid'>i</span>
-<a name="line-143"></a>      <span class='varop'>||</span>
-<a name="line-144"></a>      <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='chr'>'\x80'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='chr'>'\xff'</span><span class='layout'>)</span>
-<a name="line-145"></a>
-<a name="line-146"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-147"></a>
-<a name="line-148"></a><span class='comment'>-- |</span>
-<a name="line-149"></a><span class='comment'>-- conversion from Unicode strings (UString) to UTF8 encoded strings.</span>
-<a name="line-150"></a>
-<a name="line-151"></a><a name="unicodeToUtf8"></a><span class='definition'>unicodeToUtf8</span>		<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UTF8String</span>
-<a name="line-152"></a><span class='definition'>unicodeToUtf8</span>		<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>unicodeCharToUtf8</span>
-<a name="line-153"></a>
-<a name="line-154"></a><span class='comment'>-- |</span>
-<a name="line-155"></a><span class='comment'>-- conversion from Unicode (Char) to a UTF8 encoded string.</span>
-<a name="line-156"></a>
-<a name="line-157"></a><a name="unicodeCharToUtf8"></a><span class='definition'>unicodeCharToUtf8</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UTF8String</span>
-<a name="line-158"></a><span class='definition'>unicodeCharToUtf8</span> <span class='varid'>c</span>
-<a name="line-159"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0</span>          <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x0000007F</span>	<span class='comment'>-- 1 byte UTF8 (7 bits)</span>
-<a name="line-160"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='varid'>i</span> <span class='keyglyph'>]</span>
-<a name="line-161"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00000080</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x000007FF</span>	<span class='comment'>-- 2 byte UTF8 (5 + 6 bits)</span>
-<a name="line-162"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xC0</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-163"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span>                  <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-164"></a>	  <span class='keyglyph'>]</span>
-<a name="line-165"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00000800</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x0000FFFF</span>	<span class='comment'>-- 3 byte UTF8 (4 + 6 + 6 bits)</span>
-<a name="line-166"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xE0</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span>   <span class='num'>0x1000</span><span class='layout'>)</span>
-<a name="line-167"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-168"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                 <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-169"></a>	  <span class='keyglyph'>]</span>
-<a name="line-170"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00010000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x001FFFFF</span>	<span class='comment'>-- 4 byte UTF8 (3 + 6 + 6 + 6 bits)</span>
-<a name="line-171"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xF0</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span>    <span class='num'>0x40000</span><span class='layout'>)</span>
-<a name="line-172"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-173"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>       <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-174"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                   <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-175"></a>	  <span class='keyglyph'>]</span>
-<a name="line-176"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00200000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x03FFFFFF</span>	<span class='comment'>-- 5 byte UTF8 (2 + 6 + 6 + 6 + 6 bits)</span>
-<a name="line-177"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xF8</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span>  <span class='num'>0x1000000</span><span class='layout'>)</span>
-<a name="line-178"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>    <span class='num'>0x40000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-179"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-180"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>       <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-181"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                   <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-182"></a>	  <span class='keyglyph'>]</span>
-<a name="line-183"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x04000000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x7FFFFFFF</span>	<span class='comment'>-- 6 byte UTF8 (1 + 6 + 6 + 6 + 6 + 6 bits)</span>
-<a name="line-184"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xFC</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40000000</span><span class='layout'>)</span>
-<a name="line-185"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>  <span class='num'>0x1000000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-186"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>    <span class='num'>0x40000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-187"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-188"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>       <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-189"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                   <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
-<a name="line-190"></a>	  <span class='keyglyph'>]</span>
-<a name="line-191"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>					<span class='comment'>-- other values not supported</span>
-<a name="line-192"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"unicodeCharToUtf8: illegal integer argument "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>
-<a name="line-193"></a>    <span class='keyword'>where</span>
-<a name="line-194"></a>    <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>
-<a name="line-195"></a>
-<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-197"></a>
-<a name="line-198"></a><span class='comment'>-- |</span>
-<a name="line-199"></a><span class='comment'>-- checking for valid XML characters</span>
-<a name="line-200"></a>
-<a name="line-201"></a><a name="isXmlChar"></a><span class='definition'>isXmlChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-202"></a><span class='definition'>isXmlChar</span> <span class='varid'>c</span>
-<a name="line-203"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-204"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0009'</span><span class='layout'>,</span> <span class='chr'>'\x000A'</span><span class='layout'>)</span>
-<a name="line-205"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x000D'</span><span class='layout'>,</span> <span class='chr'>'\x000D'</span><span class='layout'>)</span>
-<a name="line-206"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0020'</span><span class='layout'>,</span> <span class='chr'>'\xD7FF'</span><span class='layout'>)</span>
-<a name="line-207"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xE000'</span><span class='layout'>,</span> <span class='chr'>'\xFFFD'</span><span class='layout'>)</span>
-<a name="line-208"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10000'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span>
-<a name="line-209"></a>      <span class='keyglyph'>]</span>
-<a name="line-210"></a>
-<a name="line-211"></a><span class='comment'>-- |</span>
-<a name="line-212"></a><span class='comment'>-- checking for XML space character: \\\n, \\\r, \\\t and \" \"</span>
-<a name="line-213"></a>
-<a name="line-214"></a><a name="isXmlSpaceChar"></a><span class='definition'>isXmlSpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-215"></a><span class='definition'>isXmlSpaceChar</span> <span class='varid'>c</span>
-<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\x20'</span><span class='layout'>,</span> <span class='chr'>'\x09'</span><span class='layout'>,</span> <span class='chr'>'\x0D'</span><span class='layout'>,</span> <span class='chr'>'\x0A'</span><span class='keyglyph'>]</span>
-<a name="line-217"></a>
-<a name="line-218"></a><span class='comment'>-- |</span>
-<a name="line-219"></a><span class='comment'>-- checking for XML1.1 space character: additional space 0x85 and 0x2028</span>
-<a name="line-220"></a><span class='comment'>--</span>
-<a name="line-221"></a><span class='comment'>-- see also : 'isXmlSpaceChar'</span>
-<a name="line-222"></a>
-<a name="line-223"></a><a name="isXml11SpaceChar"></a><span class='definition'>isXml11SpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-224"></a><span class='definition'>isXml11SpaceChar</span> <span class='varid'>c</span>
-<a name="line-225"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\x20'</span><span class='layout'>,</span> <span class='chr'>'\x09'</span><span class='layout'>,</span> <span class='chr'>'\x0D'</span><span class='layout'>,</span> <span class='chr'>'\x0A'</span><span class='layout'>,</span> <span class='chr'>'\x85'</span><span class='layout'>,</span> <span class='chr'>'\x2028'</span><span class='keyglyph'>]</span>
-<a name="line-226"></a>
-<a name="line-227"></a><span class='comment'>-- |</span>
-<a name="line-228"></a><span class='comment'>-- checking for XML name character</span>
-<a name="line-229"></a>
-<a name="line-230"></a><a name="isXmlNameChar"></a><span class='definition'>isXmlNameChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-231"></a><span class='definition'>isXmlNameChar</span> <span class='varid'>c</span>
-<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>
-<a name="line-233"></a>      <span class='varop'>||</span>
-<a name="line-234"></a>      <span class='varid'>isXmlDigit</span> <span class='varid'>c</span>
-<a name="line-235"></a>      <span class='varop'>||</span>
-<a name="line-236"></a>      <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x2D'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x2E'</span><span class='layout'>)</span>		<span class='comment'>-- '-' | '.'</span>
-<a name="line-237"></a>      <span class='varop'>||</span>
-<a name="line-238"></a>      <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x3A'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x5F'</span><span class='layout'>)</span>		<span class='comment'>-- Letter | ':' | '_'</span>
-<a name="line-239"></a>      <span class='varop'>||</span>
-<a name="line-240"></a>      <span class='varid'>isXmlCombiningChar</span> <span class='varid'>c</span>
-<a name="line-241"></a>      <span class='varop'>||</span>
-<a name="line-242"></a>      <span class='varid'>isXmlExtender</span> <span class='varid'>c</span>
-<a name="line-243"></a>
-<a name="line-244"></a><span class='comment'>-- |</span>
-<a name="line-245"></a><span class='comment'>-- checking for XML name start character</span>
-<a name="line-246"></a><span class='comment'>--</span>
-<a name="line-247"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>
-<a name="line-248"></a>
-<a name="line-249"></a><a name="isXmlNameStartChar"></a><span class='definition'>isXmlNameStartChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-250"></a><span class='definition'>isXmlNameStartChar</span> <span class='varid'>c</span>
-<a name="line-251"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>
-<a name="line-252"></a>      <span class='varop'>||</span>
-<a name="line-253"></a>      <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x3A'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x5F'</span><span class='layout'>)</span>		<span class='comment'>-- Letter | ':' | '_'</span>
-<a name="line-254"></a>
-<a name="line-255"></a><span class='comment'>-- |</span>
-<a name="line-256"></a><span class='comment'>-- checking for XML NCName character: no \":\" allowed</span>
-<a name="line-257"></a><span class='comment'>--</span>
-<a name="line-258"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>
-<a name="line-259"></a>
-<a name="line-260"></a><a name="isXmlNCNameChar"></a><span class='definition'>isXmlNCNameChar</span>			<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-261"></a><span class='definition'>isXmlNCNameChar</span> <span class='varid'>c</span>
-<a name="line-262"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>
-<a name="line-263"></a>      <span class='varop'>&amp;&amp;</span>
-<a name="line-264"></a>      <span class='varid'>isXmlNameChar</span> <span class='varid'>c</span>
-<a name="line-265"></a>
-<a name="line-266"></a><span class='comment'>-- |</span>
-<a name="line-267"></a><span class='comment'>-- checking for XML NCName start character: no \":\" allowed</span>
-<a name="line-268"></a><span class='comment'>--</span>
-<a name="line-269"></a><span class='comment'>-- see also : 'isXmlNameChar', 'isXmlNCNameChar'</span>
-<a name="line-270"></a>
-<a name="line-271"></a><a name="isXmlNCNameStartChar"></a><span class='definition'>isXmlNCNameStartChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-272"></a><span class='definition'>isXmlNCNameStartChar</span> <span class='varid'>c</span>
-<a name="line-273"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>
-<a name="line-274"></a>      <span class='varop'>&amp;&amp;</span>
-<a name="line-275"></a>      <span class='varid'>isXmlNameStartChar</span> <span class='varid'>c</span>
-<a name="line-276"></a>
-<a name="line-277"></a><span class='comment'>-- |</span>
-<a name="line-278"></a><span class='comment'>-- checking for XML public id character</span>
-<a name="line-279"></a>
-<a name="line-280"></a><a name="isXmlPubidChar"></a><span class='definition'>isXmlPubidChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-281"></a><span class='definition'>isXmlPubidChar</span> <span class='varid'>c</span>
-<a name="line-282"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'A'</span><span class='layout'>,</span> <span class='chr'>'Z'</span><span class='layout'>)</span>
-<a name="line-283"></a>		 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'a'</span><span class='layout'>,</span> <span class='chr'>'z'</span><span class='layout'>)</span>
-<a name="line-284"></a>		 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='layout'>,</span> <span class='chr'>'9'</span><span class='layout'>)</span>
-<a name="line-285"></a>		 <span class='keyglyph'>]</span>
-<a name="line-286"></a>      <span class='varop'>||</span>
-<a name="line-287"></a>      <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>" \r\n-'()+,./:=?;!*#@$_%"</span> <span class='layout'>)</span>
-<a name="line-288"></a>
-<a name="line-289"></a><span class='comment'>-- |</span>
-<a name="line-290"></a><span class='comment'>-- checking for XML letter</span>
-<a name="line-291"></a>
-<a name="line-292"></a><a name="isXmlLetter"></a><span class='definition'>isXmlLetter</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-293"></a><span class='definition'>isXmlLetter</span> <span class='varid'>c</span>
-<a name="line-294"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlBaseChar</span> <span class='varid'>c</span>
-<a name="line-295"></a>      <span class='varop'>||</span>
-<a name="line-296"></a>      <span class='varid'>isXmlIdeographicChar</span> <span class='varid'>c</span>
-<a name="line-297"></a>
-<a name="line-298"></a><span class='comment'>-- |</span>
-<a name="line-299"></a><span class='comment'>-- checking for XML base charater</span>
-<a name="line-300"></a>
-<a name="line-301"></a><a name="isXmlBaseChar"></a><span class='definition'>isXmlBaseChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-302"></a><span class='definition'>isXmlBaseChar</span> <span class='varid'>c</span>
-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-304"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0041'</span><span class='layout'>,</span> <span class='chr'>'\x005A'</span><span class='layout'>)</span>
-<a name="line-305"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0061'</span><span class='layout'>,</span> <span class='chr'>'\x007A'</span><span class='layout'>)</span>
-<a name="line-306"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00C0'</span><span class='layout'>,</span> <span class='chr'>'\x00D6'</span><span class='layout'>)</span>
-<a name="line-307"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00D8'</span><span class='layout'>,</span> <span class='chr'>'\x00F6'</span><span class='layout'>)</span>
-<a name="line-308"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00F8'</span><span class='layout'>,</span> <span class='chr'>'\x0131'</span><span class='layout'>)</span>
-<a name="line-309"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0134'</span><span class='layout'>,</span> <span class='chr'>'\x013E'</span><span class='layout'>)</span>
-<a name="line-310"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0141'</span><span class='layout'>,</span> <span class='chr'>'\x0148'</span><span class='layout'>)</span>
-<a name="line-311"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x014A'</span><span class='layout'>,</span> <span class='chr'>'\x017E'</span><span class='layout'>)</span>
-<a name="line-312"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0180'</span><span class='layout'>,</span> <span class='chr'>'\x01C3'</span><span class='layout'>)</span>
-<a name="line-313"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01CD'</span><span class='layout'>,</span> <span class='chr'>'\x01F0'</span><span class='layout'>)</span>
-<a name="line-314"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01F4'</span><span class='layout'>,</span> <span class='chr'>'\x01F5'</span><span class='layout'>)</span>
-<a name="line-315"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01FA'</span><span class='layout'>,</span> <span class='chr'>'\x0217'</span><span class='layout'>)</span>
-<a name="line-316"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0250'</span><span class='layout'>,</span> <span class='chr'>'\x02A8'</span><span class='layout'>)</span>
-<a name="line-317"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02BB'</span><span class='layout'>,</span> <span class='chr'>'\x02C1'</span><span class='layout'>)</span>
-<a name="line-318"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0386'</span><span class='layout'>,</span> <span class='chr'>'\x0386'</span><span class='layout'>)</span>
-<a name="line-319"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0388'</span><span class='layout'>,</span> <span class='chr'>'\x038A'</span><span class='layout'>)</span>
-<a name="line-320"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x038C'</span><span class='layout'>,</span> <span class='chr'>'\x038C'</span><span class='layout'>)</span>
-<a name="line-321"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x038E'</span><span class='layout'>,</span> <span class='chr'>'\x03A1'</span><span class='layout'>)</span>
-<a name="line-322"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03A3'</span><span class='layout'>,</span> <span class='chr'>'\x03CE'</span><span class='layout'>)</span>
-<a name="line-323"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03D0'</span><span class='layout'>,</span> <span class='chr'>'\x03D6'</span><span class='layout'>)</span>
-<a name="line-324"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DA'</span><span class='layout'>,</span> <span class='chr'>'\x03DA'</span><span class='layout'>)</span>
-<a name="line-325"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DC'</span><span class='layout'>,</span> <span class='chr'>'\x03DC'</span><span class='layout'>)</span>
-<a name="line-326"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DE'</span><span class='layout'>,</span> <span class='chr'>'\x03DE'</span><span class='layout'>)</span>
-<a name="line-327"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03E0'</span><span class='layout'>,</span> <span class='chr'>'\x03E0'</span><span class='layout'>)</span>
-<a name="line-328"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03E2'</span><span class='layout'>,</span> <span class='chr'>'\x03F3'</span><span class='layout'>)</span>
-<a name="line-329"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0401'</span><span class='layout'>,</span> <span class='chr'>'\x040C'</span><span class='layout'>)</span>
-<a name="line-330"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x040E'</span><span class='layout'>,</span> <span class='chr'>'\x044F'</span><span class='layout'>)</span>
-<a name="line-331"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0451'</span><span class='layout'>,</span> <span class='chr'>'\x045C'</span><span class='layout'>)</span>
-<a name="line-332"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x045E'</span><span class='layout'>,</span> <span class='chr'>'\x0481'</span><span class='layout'>)</span>
-<a name="line-333"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0490'</span><span class='layout'>,</span> <span class='chr'>'\x04C4'</span><span class='layout'>)</span>
-<a name="line-334"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04C7'</span><span class='layout'>,</span> <span class='chr'>'\x04C8'</span><span class='layout'>)</span>
-<a name="line-335"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04CB'</span><span class='layout'>,</span> <span class='chr'>'\x04CC'</span><span class='layout'>)</span>
-<a name="line-336"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04D0'</span><span class='layout'>,</span> <span class='chr'>'\x04EB'</span><span class='layout'>)</span>
-<a name="line-337"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04EE'</span><span class='layout'>,</span> <span class='chr'>'\x04F5'</span><span class='layout'>)</span>
-<a name="line-338"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04F8'</span><span class='layout'>,</span> <span class='chr'>'\x04F9'</span><span class='layout'>)</span>
-<a name="line-339"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0531'</span><span class='layout'>,</span> <span class='chr'>'\x0556'</span><span class='layout'>)</span>
-<a name="line-340"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0559'</span><span class='layout'>,</span> <span class='chr'>'\x0559'</span><span class='layout'>)</span>
-<a name="line-341"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0561'</span><span class='layout'>,</span> <span class='chr'>'\x0586'</span><span class='layout'>)</span>
-<a name="line-342"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05D0'</span><span class='layout'>,</span> <span class='chr'>'\x05EA'</span><span class='layout'>)</span>
-<a name="line-343"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05F0'</span><span class='layout'>,</span> <span class='chr'>'\x05F2'</span><span class='layout'>)</span>
-<a name="line-344"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0621'</span><span class='layout'>,</span> <span class='chr'>'\x063A'</span><span class='layout'>)</span>
-<a name="line-345"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0641'</span><span class='layout'>,</span> <span class='chr'>'\x064A'</span><span class='layout'>)</span>
-<a name="line-346"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0671'</span><span class='layout'>,</span> <span class='chr'>'\x06B7'</span><span class='layout'>)</span>
-<a name="line-347"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06BA'</span><span class='layout'>,</span> <span class='chr'>'\x06BE'</span><span class='layout'>)</span>
-<a name="line-348"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06C0'</span><span class='layout'>,</span> <span class='chr'>'\x06CE'</span><span class='layout'>)</span>
-<a name="line-349"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D0'</span><span class='layout'>,</span> <span class='chr'>'\x06D3'</span><span class='layout'>)</span>
-<a name="line-350"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D5'</span><span class='layout'>,</span> <span class='chr'>'\x06D5'</span><span class='layout'>)</span>
-<a name="line-351"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E5'</span><span class='layout'>,</span> <span class='chr'>'\x06E6'</span><span class='layout'>)</span>
-<a name="line-352"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0905'</span><span class='layout'>,</span> <span class='chr'>'\x0939'</span><span class='layout'>)</span>
-<a name="line-353"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093D'</span><span class='layout'>,</span> <span class='chr'>'\x093D'</span><span class='layout'>)</span>
-<a name="line-354"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0958'</span><span class='layout'>,</span> <span class='chr'>'\x0961'</span><span class='layout'>)</span>
-<a name="line-355"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0985'</span><span class='layout'>,</span> <span class='chr'>'\x098C'</span><span class='layout'>)</span>
-<a name="line-356"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x098F'</span><span class='layout'>,</span> <span class='chr'>'\x0990'</span><span class='layout'>)</span>
-<a name="line-357"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0993'</span><span class='layout'>,</span> <span class='chr'>'\x09A8'</span><span class='layout'>)</span>
-<a name="line-358"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09AA'</span><span class='layout'>,</span> <span class='chr'>'\x09B0'</span><span class='layout'>)</span>
-<a name="line-359"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09B2'</span><span class='layout'>,</span> <span class='chr'>'\x09B2'</span><span class='layout'>)</span>
-<a name="line-360"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09B6'</span><span class='layout'>,</span> <span class='chr'>'\x09B9'</span><span class='layout'>)</span>
-<a name="line-361"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09DC'</span><span class='layout'>,</span> <span class='chr'>'\x09DD'</span><span class='layout'>)</span>
-<a name="line-362"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09DF'</span><span class='layout'>,</span> <span class='chr'>'\x09E1'</span><span class='layout'>)</span>
-<a name="line-363"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09F0'</span><span class='layout'>,</span> <span class='chr'>'\x09F1'</span><span class='layout'>)</span>
-<a name="line-364"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A05'</span><span class='layout'>,</span> <span class='chr'>'\x0A0A'</span><span class='layout'>)</span>
-<a name="line-365"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A0F'</span><span class='layout'>,</span> <span class='chr'>'\x0A10'</span><span class='layout'>)</span>
-<a name="line-366"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A13'</span><span class='layout'>,</span> <span class='chr'>'\x0A28'</span><span class='layout'>)</span>
-<a name="line-367"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A2A'</span><span class='layout'>,</span> <span class='chr'>'\x0A30'</span><span class='layout'>)</span>
-<a name="line-368"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A32'</span><span class='layout'>,</span> <span class='chr'>'\x0A33'</span><span class='layout'>)</span>
-<a name="line-369"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A35'</span><span class='layout'>,</span> <span class='chr'>'\x0A36'</span><span class='layout'>)</span>
-<a name="line-370"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A38'</span><span class='layout'>,</span> <span class='chr'>'\x0A39'</span><span class='layout'>)</span>
-<a name="line-371"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A59'</span><span class='layout'>,</span> <span class='chr'>'\x0A5C'</span><span class='layout'>)</span>
-<a name="line-372"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A5E'</span><span class='layout'>,</span> <span class='chr'>'\x0A5E'</span><span class='layout'>)</span>
-<a name="line-373"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A72'</span><span class='layout'>,</span> <span class='chr'>'\x0A74'</span><span class='layout'>)</span>
-<a name="line-374"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A85'</span><span class='layout'>,</span> <span class='chr'>'\x0A8B'</span><span class='layout'>)</span>
-<a name="line-375"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A8D'</span><span class='layout'>,</span> <span class='chr'>'\x0A8D'</span><span class='layout'>)</span>
-<a name="line-376"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A8F'</span><span class='layout'>,</span> <span class='chr'>'\x0A91'</span><span class='layout'>)</span>
-<a name="line-377"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A93'</span><span class='layout'>,</span> <span class='chr'>'\x0AA8'</span><span class='layout'>)</span>
-<a name="line-378"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AAA'</span><span class='layout'>,</span> <span class='chr'>'\x0AB0'</span><span class='layout'>)</span>
-<a name="line-379"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AB2'</span><span class='layout'>,</span> <span class='chr'>'\x0AB3'</span><span class='layout'>)</span>
-<a name="line-380"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AB5'</span><span class='layout'>,</span> <span class='chr'>'\x0AB9'</span><span class='layout'>)</span>
-<a name="line-381"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABD'</span><span class='layout'>,</span> <span class='chr'>'\x0ABD'</span><span class='layout'>)</span>
-<a name="line-382"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AE0'</span><span class='layout'>,</span> <span class='chr'>'\x0AE0'</span><span class='layout'>)</span>
-<a name="line-383"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B05'</span><span class='layout'>,</span> <span class='chr'>'\x0B0C'</span><span class='layout'>)</span>
-<a name="line-384"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B0F'</span><span class='layout'>,</span> <span class='chr'>'\x0B10'</span><span class='layout'>)</span>
-<a name="line-385"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B13'</span><span class='layout'>,</span> <span class='chr'>'\x0B28'</span><span class='layout'>)</span>
-<a name="line-386"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B2A'</span><span class='layout'>,</span> <span class='chr'>'\x0B30'</span><span class='layout'>)</span>
-<a name="line-387"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B32'</span><span class='layout'>,</span> <span class='chr'>'\x0B33'</span><span class='layout'>)</span>
-<a name="line-388"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B36'</span><span class='layout'>,</span> <span class='chr'>'\x0B39'</span><span class='layout'>)</span>
-<a name="line-389"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3D'</span><span class='layout'>,</span> <span class='chr'>'\x0B3D'</span><span class='layout'>)</span>
-<a name="line-390"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B5C'</span><span class='layout'>,</span> <span class='chr'>'\x0B5D'</span><span class='layout'>)</span>
-<a name="line-391"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B5F'</span><span class='layout'>,</span> <span class='chr'>'\x0B61'</span><span class='layout'>)</span>
-<a name="line-392"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B85'</span><span class='layout'>,</span> <span class='chr'>'\x0B8A'</span><span class='layout'>)</span>
-<a name="line-393"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B8E'</span><span class='layout'>,</span> <span class='chr'>'\x0B90'</span><span class='layout'>)</span>
-<a name="line-394"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B92'</span><span class='layout'>,</span> <span class='chr'>'\x0B95'</span><span class='layout'>)</span>
-<a name="line-395"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B99'</span><span class='layout'>,</span> <span class='chr'>'\x0B9A'</span><span class='layout'>)</span>
-<a name="line-396"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B9C'</span><span class='layout'>,</span> <span class='chr'>'\x0B9C'</span><span class='layout'>)</span>
-<a name="line-397"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B9E'</span><span class='layout'>,</span> <span class='chr'>'\x0B9F'</span><span class='layout'>)</span>
-<a name="line-398"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BA3'</span><span class='layout'>,</span> <span class='chr'>'\x0BA4'</span><span class='layout'>)</span>
-<a name="line-399"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BA8'</span><span class='layout'>,</span> <span class='chr'>'\x0BAA'</span><span class='layout'>)</span>
-<a name="line-400"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BAE'</span><span class='layout'>,</span> <span class='chr'>'\x0BB5'</span><span class='layout'>)</span>
-<a name="line-401"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BB7'</span><span class='layout'>,</span> <span class='chr'>'\x0BB9'</span><span class='layout'>)</span>
-<a name="line-402"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C05'</span><span class='layout'>,</span> <span class='chr'>'\x0C0C'</span><span class='layout'>)</span>
-<a name="line-403"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C0E'</span><span class='layout'>,</span> <span class='chr'>'\x0C10'</span><span class='layout'>)</span>
-<a name="line-404"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C12'</span><span class='layout'>,</span> <span class='chr'>'\x0C28'</span><span class='layout'>)</span>
-<a name="line-405"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C2A'</span><span class='layout'>,</span> <span class='chr'>'\x0C33'</span><span class='layout'>)</span>
-<a name="line-406"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C35'</span><span class='layout'>,</span> <span class='chr'>'\x0C39'</span><span class='layout'>)</span>
-<a name="line-407"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C60'</span><span class='layout'>,</span> <span class='chr'>'\x0C61'</span><span class='layout'>)</span>
-<a name="line-408"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C85'</span><span class='layout'>,</span> <span class='chr'>'\x0C8C'</span><span class='layout'>)</span>
-<a name="line-409"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C8E'</span><span class='layout'>,</span> <span class='chr'>'\x0C90'</span><span class='layout'>)</span>
-<a name="line-410"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C92'</span><span class='layout'>,</span> <span class='chr'>'\x0CA8'</span><span class='layout'>)</span>
-<a name="line-411"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CAA'</span><span class='layout'>,</span> <span class='chr'>'\x0CB3'</span><span class='layout'>)</span>
-<a name="line-412"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CB5'</span><span class='layout'>,</span> <span class='chr'>'\x0CB9'</span><span class='layout'>)</span>
-<a name="line-413"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CDE'</span><span class='layout'>,</span> <span class='chr'>'\x0CDE'</span><span class='layout'>)</span>
-<a name="line-414"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CE0'</span><span class='layout'>,</span> <span class='chr'>'\x0CE1'</span><span class='layout'>)</span>
-<a name="line-415"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D05'</span><span class='layout'>,</span> <span class='chr'>'\x0D0C'</span><span class='layout'>)</span>
-<a name="line-416"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D0E'</span><span class='layout'>,</span> <span class='chr'>'\x0D10'</span><span class='layout'>)</span>
-<a name="line-417"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D12'</span><span class='layout'>,</span> <span class='chr'>'\x0D28'</span><span class='layout'>)</span>
-<a name="line-418"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D2A'</span><span class='layout'>,</span> <span class='chr'>'\x0D39'</span><span class='layout'>)</span>
-<a name="line-419"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D60'</span><span class='layout'>,</span> <span class='chr'>'\x0D61'</span><span class='layout'>)</span>
-<a name="line-420"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E01'</span><span class='layout'>,</span> <span class='chr'>'\x0E2E'</span><span class='layout'>)</span>
-<a name="line-421"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E30'</span><span class='layout'>,</span> <span class='chr'>'\x0E30'</span><span class='layout'>)</span>
-<a name="line-422"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E32'</span><span class='layout'>,</span> <span class='chr'>'\x0E33'</span><span class='layout'>)</span>
-<a name="line-423"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E40'</span><span class='layout'>,</span> <span class='chr'>'\x0E45'</span><span class='layout'>)</span>
-<a name="line-424"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E81'</span><span class='layout'>,</span> <span class='chr'>'\x0E82'</span><span class='layout'>)</span>
-<a name="line-425"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E84'</span><span class='layout'>,</span> <span class='chr'>'\x0E84'</span><span class='layout'>)</span>
-<a name="line-426"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E87'</span><span class='layout'>,</span> <span class='chr'>'\x0E88'</span><span class='layout'>)</span>
-<a name="line-427"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E8A'</span><span class='layout'>,</span> <span class='chr'>'\x0E8A'</span><span class='layout'>)</span>
-<a name="line-428"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E8D'</span><span class='layout'>,</span> <span class='chr'>'\x0E8D'</span><span class='layout'>)</span>
-<a name="line-429"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E94'</span><span class='layout'>,</span> <span class='chr'>'\x0E97'</span><span class='layout'>)</span>
-<a name="line-430"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E99'</span><span class='layout'>,</span> <span class='chr'>'\x0E9F'</span><span class='layout'>)</span>
-<a name="line-431"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA1'</span><span class='layout'>,</span> <span class='chr'>'\x0EA3'</span><span class='layout'>)</span>
-<a name="line-432"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA5'</span><span class='layout'>,</span> <span class='chr'>'\x0EA5'</span><span class='layout'>)</span>
-<a name="line-433"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA7'</span><span class='layout'>,</span> <span class='chr'>'\x0EA7'</span><span class='layout'>)</span>
-<a name="line-434"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EAA'</span><span class='layout'>,</span> <span class='chr'>'\x0EAB'</span><span class='layout'>)</span>
-<a name="line-435"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EAD'</span><span class='layout'>,</span> <span class='chr'>'\x0EAE'</span><span class='layout'>)</span>
-<a name="line-436"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB0'</span><span class='layout'>,</span> <span class='chr'>'\x0EB0'</span><span class='layout'>)</span>
-<a name="line-437"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB2'</span><span class='layout'>,</span> <span class='chr'>'\x0EB3'</span><span class='layout'>)</span>
-<a name="line-438"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EBD'</span><span class='layout'>,</span> <span class='chr'>'\x0EBD'</span><span class='layout'>)</span>
-<a name="line-439"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC0'</span><span class='layout'>,</span> <span class='chr'>'\x0EC4'</span><span class='layout'>)</span>
-<a name="line-440"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F40'</span><span class='layout'>,</span> <span class='chr'>'\x0F47'</span><span class='layout'>)</span>
-<a name="line-441"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F49'</span><span class='layout'>,</span> <span class='chr'>'\x0F69'</span><span class='layout'>)</span>
-<a name="line-442"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10A0'</span><span class='layout'>,</span> <span class='chr'>'\x10C5'</span><span class='layout'>)</span>
-<a name="line-443"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10D0'</span><span class='layout'>,</span> <span class='chr'>'\x10F6'</span><span class='layout'>)</span>
-<a name="line-444"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1100'</span><span class='layout'>,</span> <span class='chr'>'\x1100'</span><span class='layout'>)</span>
-<a name="line-445"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1102'</span><span class='layout'>,</span> <span class='chr'>'\x1103'</span><span class='layout'>)</span>
-<a name="line-446"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1105'</span><span class='layout'>,</span> <span class='chr'>'\x1107'</span><span class='layout'>)</span>
-<a name="line-447"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1109'</span><span class='layout'>,</span> <span class='chr'>'\x1109'</span><span class='layout'>)</span>
-<a name="line-448"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x110B'</span><span class='layout'>,</span> <span class='chr'>'\x110C'</span><span class='layout'>)</span>
-<a name="line-449"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x110E'</span><span class='layout'>,</span> <span class='chr'>'\x1112'</span><span class='layout'>)</span>
-<a name="line-450"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x113C'</span><span class='layout'>,</span> <span class='chr'>'\x113C'</span><span class='layout'>)</span>
-<a name="line-451"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x113E'</span><span class='layout'>,</span> <span class='chr'>'\x113E'</span><span class='layout'>)</span>
-<a name="line-452"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1140'</span><span class='layout'>,</span> <span class='chr'>'\x1140'</span><span class='layout'>)</span>
-<a name="line-453"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x114C'</span><span class='layout'>,</span> <span class='chr'>'\x114C'</span><span class='layout'>)</span>
-<a name="line-454"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x114E'</span><span class='layout'>,</span> <span class='chr'>'\x114E'</span><span class='layout'>)</span>
-<a name="line-455"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1150'</span><span class='layout'>,</span> <span class='chr'>'\x1150'</span><span class='layout'>)</span>
-<a name="line-456"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1154'</span><span class='layout'>,</span> <span class='chr'>'\x1155'</span><span class='layout'>)</span>
-<a name="line-457"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1159'</span><span class='layout'>,</span> <span class='chr'>'\x1159'</span><span class='layout'>)</span>
-<a name="line-458"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x115F'</span><span class='layout'>,</span> <span class='chr'>'\x1161'</span><span class='layout'>)</span>
-<a name="line-459"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1163'</span><span class='layout'>,</span> <span class='chr'>'\x1163'</span><span class='layout'>)</span>
-<a name="line-460"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1165'</span><span class='layout'>,</span> <span class='chr'>'\x1165'</span><span class='layout'>)</span>
-<a name="line-461"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1167'</span><span class='layout'>,</span> <span class='chr'>'\x1167'</span><span class='layout'>)</span>
-<a name="line-462"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1169'</span><span class='layout'>,</span> <span class='chr'>'\x1169'</span><span class='layout'>)</span>
-<a name="line-463"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x116D'</span><span class='layout'>,</span> <span class='chr'>'\x116E'</span><span class='layout'>)</span>
-<a name="line-464"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1172'</span><span class='layout'>,</span> <span class='chr'>'\x1173'</span><span class='layout'>)</span>
-<a name="line-465"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1175'</span><span class='layout'>,</span> <span class='chr'>'\x1175'</span><span class='layout'>)</span>
-<a name="line-466"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x119E'</span><span class='layout'>,</span> <span class='chr'>'\x119E'</span><span class='layout'>)</span>
-<a name="line-467"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11A8'</span><span class='layout'>,</span> <span class='chr'>'\x11A8'</span><span class='layout'>)</span>
-<a name="line-468"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11AB'</span><span class='layout'>,</span> <span class='chr'>'\x11AB'</span><span class='layout'>)</span>
-<a name="line-469"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11AE'</span><span class='layout'>,</span> <span class='chr'>'\x11AF'</span><span class='layout'>)</span>
-<a name="line-470"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11B7'</span><span class='layout'>,</span> <span class='chr'>'\x11B8'</span><span class='layout'>)</span>
-<a name="line-471"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11BA'</span><span class='layout'>,</span> <span class='chr'>'\x11BA'</span><span class='layout'>)</span>
-<a name="line-472"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11BC'</span><span class='layout'>,</span> <span class='chr'>'\x11C2'</span><span class='layout'>)</span>
-<a name="line-473"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11EB'</span><span class='layout'>,</span> <span class='chr'>'\x11EB'</span><span class='layout'>)</span>
-<a name="line-474"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11F0'</span><span class='layout'>,</span> <span class='chr'>'\x11F0'</span><span class='layout'>)</span>
-<a name="line-475"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11F9'</span><span class='layout'>,</span> <span class='chr'>'\x11F9'</span><span class='layout'>)</span>
-<a name="line-476"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1E00'</span><span class='layout'>,</span> <span class='chr'>'\x1E9B'</span><span class='layout'>)</span>
-<a name="line-477"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1EA0'</span><span class='layout'>,</span> <span class='chr'>'\x1EF9'</span><span class='layout'>)</span>
-<a name="line-478"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F00'</span><span class='layout'>,</span> <span class='chr'>'\x1F15'</span><span class='layout'>)</span>
-<a name="line-479"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F18'</span><span class='layout'>,</span> <span class='chr'>'\x1F1D'</span><span class='layout'>)</span>
-<a name="line-480"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F20'</span><span class='layout'>,</span> <span class='chr'>'\x1F45'</span><span class='layout'>)</span>
-<a name="line-481"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F48'</span><span class='layout'>,</span> <span class='chr'>'\x1F4D'</span><span class='layout'>)</span>
-<a name="line-482"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F50'</span><span class='layout'>,</span> <span class='chr'>'\x1F57'</span><span class='layout'>)</span>
-<a name="line-483"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F59'</span><span class='layout'>,</span> <span class='chr'>'\x1F59'</span><span class='layout'>)</span>
-<a name="line-484"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5B'</span><span class='layout'>,</span> <span class='chr'>'\x1F5B'</span><span class='layout'>)</span>
-<a name="line-485"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5D'</span><span class='layout'>,</span> <span class='chr'>'\x1F5D'</span><span class='layout'>)</span>
-<a name="line-486"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5F'</span><span class='layout'>,</span> <span class='chr'>'\x1F7D'</span><span class='layout'>)</span>
-<a name="line-487"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F80'</span><span class='layout'>,</span> <span class='chr'>'\x1FB4'</span><span class='layout'>)</span>
-<a name="line-488"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FB6'</span><span class='layout'>,</span> <span class='chr'>'\x1FBC'</span><span class='layout'>)</span>
-<a name="line-489"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FBE'</span><span class='layout'>,</span> <span class='chr'>'\x1FBE'</span><span class='layout'>)</span>
-<a name="line-490"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FC2'</span><span class='layout'>,</span> <span class='chr'>'\x1FC4'</span><span class='layout'>)</span>
-<a name="line-491"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FC6'</span><span class='layout'>,</span> <span class='chr'>'\x1FCC'</span><span class='layout'>)</span>
-<a name="line-492"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FD0'</span><span class='layout'>,</span> <span class='chr'>'\x1FD3'</span><span class='layout'>)</span>
-<a name="line-493"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FD6'</span><span class='layout'>,</span> <span class='chr'>'\x1FDB'</span><span class='layout'>)</span>
-<a name="line-494"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FE0'</span><span class='layout'>,</span> <span class='chr'>'\x1FEC'</span><span class='layout'>)</span>
-<a name="line-495"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FF2'</span><span class='layout'>,</span> <span class='chr'>'\x1FF4'</span><span class='layout'>)</span>
-<a name="line-496"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FF6'</span><span class='layout'>,</span> <span class='chr'>'\x1FFC'</span><span class='layout'>)</span>
-<a name="line-497"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2126'</span><span class='layout'>,</span> <span class='chr'>'\x2126'</span><span class='layout'>)</span>
-<a name="line-498"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x212A'</span><span class='layout'>,</span> <span class='chr'>'\x212B'</span><span class='layout'>)</span>
-<a name="line-499"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x212E'</span><span class='layout'>,</span> <span class='chr'>'\x212E'</span><span class='layout'>)</span>
-<a name="line-500"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2180'</span><span class='layout'>,</span> <span class='chr'>'\x2182'</span><span class='layout'>)</span>
-<a name="line-501"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3041'</span><span class='layout'>,</span> <span class='chr'>'\x3094'</span><span class='layout'>)</span>
-<a name="line-502"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x30A1'</span><span class='layout'>,</span> <span class='chr'>'\x30FA'</span><span class='layout'>)</span>
-<a name="line-503"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3105'</span><span class='layout'>,</span> <span class='chr'>'\x312C'</span><span class='layout'>)</span>
-<a name="line-504"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xAC00'</span><span class='layout'>,</span> <span class='chr'>'\xD7A3'</span><span class='layout'>)</span>
-<a name="line-505"></a>      <span class='keyglyph'>]</span>
-<a name="line-506"></a>
-<a name="line-507"></a><span class='comment'>-- |</span>
-<a name="line-508"></a><span class='comment'>-- checking for XML ideographic charater</span>
-<a name="line-509"></a>
-<a name="line-510"></a><a name="isXmlIdeographicChar"></a><span class='definition'>isXmlIdeographicChar</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-511"></a><span class='definition'>isXmlIdeographicChar</span> <span class='varid'>c</span>
-<a name="line-512"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-513"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x3007'</span><span class='layout'>,</span> <span class='chr'>'\x3007'</span><span class='layout'>)</span>
-<a name="line-514"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3021'</span><span class='layout'>,</span> <span class='chr'>'\x3029'</span><span class='layout'>)</span>
-<a name="line-515"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x4E00'</span><span class='layout'>,</span> <span class='chr'>'\x9FA5'</span><span class='layout'>)</span>
-<a name="line-516"></a>      <span class='keyglyph'>]</span>
-<a name="line-517"></a>
-<a name="line-518"></a><span class='comment'>-- |</span>
-<a name="line-519"></a><span class='comment'>-- checking for XML combining charater</span>
-<a name="line-520"></a>
-<a name="line-521"></a><a name="isXmlCombiningChar"></a><span class='definition'>isXmlCombiningChar</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-522"></a><span class='definition'>isXmlCombiningChar</span> <span class='varid'>c</span>
-<a name="line-523"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-524"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0300'</span><span class='layout'>,</span> <span class='chr'>'\x0345'</span><span class='layout'>)</span>
-<a name="line-525"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0360'</span><span class='layout'>,</span> <span class='chr'>'\x0361'</span><span class='layout'>)</span>
-<a name="line-526"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0483'</span><span class='layout'>,</span> <span class='chr'>'\x0486'</span><span class='layout'>)</span>
-<a name="line-527"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0591'</span><span class='layout'>,</span> <span class='chr'>'\x05A1'</span><span class='layout'>)</span>
-<a name="line-528"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05A3'</span><span class='layout'>,</span> <span class='chr'>'\x05B9'</span><span class='layout'>)</span>
-<a name="line-529"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05BB'</span><span class='layout'>,</span> <span class='chr'>'\x05BD'</span><span class='layout'>)</span>
-<a name="line-530"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05BF'</span><span class='layout'>,</span> <span class='chr'>'\x05BF'</span><span class='layout'>)</span>
-<a name="line-531"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05C1'</span><span class='layout'>,</span> <span class='chr'>'\x05C2'</span><span class='layout'>)</span>
-<a name="line-532"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05C4'</span><span class='layout'>,</span> <span class='chr'>'\x05C4'</span><span class='layout'>)</span>
-<a name="line-533"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x064B'</span><span class='layout'>,</span> <span class='chr'>'\x0652'</span><span class='layout'>)</span>
-<a name="line-534"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0670'</span><span class='layout'>,</span> <span class='chr'>'\x0670'</span><span class='layout'>)</span>
-<a name="line-535"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D6'</span><span class='layout'>,</span> <span class='chr'>'\x06DC'</span><span class='layout'>)</span>
-<a name="line-536"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06DD'</span><span class='layout'>,</span> <span class='chr'>'\x06DF'</span><span class='layout'>)</span>
-<a name="line-537"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E0'</span><span class='layout'>,</span> <span class='chr'>'\x06E4'</span><span class='layout'>)</span>
-<a name="line-538"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E7'</span><span class='layout'>,</span> <span class='chr'>'\x06E8'</span><span class='layout'>)</span>
-<a name="line-539"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06EA'</span><span class='layout'>,</span> <span class='chr'>'\x06ED'</span><span class='layout'>)</span>
-<a name="line-540"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0901'</span><span class='layout'>,</span> <span class='chr'>'\x0903'</span><span class='layout'>)</span>
-<a name="line-541"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093C'</span><span class='layout'>,</span> <span class='chr'>'\x093C'</span><span class='layout'>)</span>
-<a name="line-542"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093E'</span><span class='layout'>,</span> <span class='chr'>'\x094C'</span><span class='layout'>)</span>
-<a name="line-543"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x094D'</span><span class='layout'>,</span> <span class='chr'>'\x094D'</span><span class='layout'>)</span>
-<a name="line-544"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0951'</span><span class='layout'>,</span> <span class='chr'>'\x0954'</span><span class='layout'>)</span>
-<a name="line-545"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0962'</span><span class='layout'>,</span> <span class='chr'>'\x0963'</span><span class='layout'>)</span>
-<a name="line-546"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0981'</span><span class='layout'>,</span> <span class='chr'>'\x0983'</span><span class='layout'>)</span>
-<a name="line-547"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BC'</span><span class='layout'>,</span> <span class='chr'>'\x09BC'</span><span class='layout'>)</span>
-<a name="line-548"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BE'</span><span class='layout'>,</span> <span class='chr'>'\x09BE'</span><span class='layout'>)</span>
-<a name="line-549"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BF'</span><span class='layout'>,</span> <span class='chr'>'\x09BF'</span><span class='layout'>)</span>
-<a name="line-550"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09C0'</span><span class='layout'>,</span> <span class='chr'>'\x09C4'</span><span class='layout'>)</span>
-<a name="line-551"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09C7'</span><span class='layout'>,</span> <span class='chr'>'\x09C8'</span><span class='layout'>)</span>
-<a name="line-552"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09CB'</span><span class='layout'>,</span> <span class='chr'>'\x09CD'</span><span class='layout'>)</span>
-<a name="line-553"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09D7'</span><span class='layout'>,</span> <span class='chr'>'\x09D7'</span><span class='layout'>)</span>
-<a name="line-554"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09E2'</span><span class='layout'>,</span> <span class='chr'>'\x09E3'</span><span class='layout'>)</span>
-<a name="line-555"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A02'</span><span class='layout'>,</span> <span class='chr'>'\x0A02'</span><span class='layout'>)</span>
-<a name="line-556"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3C'</span><span class='layout'>,</span> <span class='chr'>'\x0A3C'</span><span class='layout'>)</span>
-<a name="line-557"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3E'</span><span class='layout'>,</span> <span class='chr'>'\x0A3E'</span><span class='layout'>)</span>
-<a name="line-558"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3F'</span><span class='layout'>,</span> <span class='chr'>'\x0A3F'</span><span class='layout'>)</span>
-<a name="line-559"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A40'</span><span class='layout'>,</span> <span class='chr'>'\x0A42'</span><span class='layout'>)</span>
-<a name="line-560"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A47'</span><span class='layout'>,</span> <span class='chr'>'\x0A48'</span><span class='layout'>)</span>
-<a name="line-561"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A4B'</span><span class='layout'>,</span> <span class='chr'>'\x0A4D'</span><span class='layout'>)</span>
-<a name="line-562"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A70'</span><span class='layout'>,</span> <span class='chr'>'\x0A71'</span><span class='layout'>)</span>
-<a name="line-563"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A81'</span><span class='layout'>,</span> <span class='chr'>'\x0A83'</span><span class='layout'>)</span>
-<a name="line-564"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABC'</span><span class='layout'>,</span> <span class='chr'>'\x0ABC'</span><span class='layout'>)</span>
-<a name="line-565"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABE'</span><span class='layout'>,</span> <span class='chr'>'\x0AC5'</span><span class='layout'>)</span>
-<a name="line-566"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AC7'</span><span class='layout'>,</span> <span class='chr'>'\x0AC9'</span><span class='layout'>)</span>
-<a name="line-567"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ACB'</span><span class='layout'>,</span> <span class='chr'>'\x0ACD'</span><span class='layout'>)</span>
-<a name="line-568"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B01'</span><span class='layout'>,</span> <span class='chr'>'\x0B03'</span><span class='layout'>)</span>
-<a name="line-569"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3C'</span><span class='layout'>,</span> <span class='chr'>'\x0B3C'</span><span class='layout'>)</span>
-<a name="line-570"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3E'</span><span class='layout'>,</span> <span class='chr'>'\x0B43'</span><span class='layout'>)</span>
-<a name="line-571"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B47'</span><span class='layout'>,</span> <span class='chr'>'\x0B48'</span><span class='layout'>)</span>
-<a name="line-572"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B4B'</span><span class='layout'>,</span> <span class='chr'>'\x0B4D'</span><span class='layout'>)</span>
-<a name="line-573"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B56'</span><span class='layout'>,</span> <span class='chr'>'\x0B57'</span><span class='layout'>)</span>
-<a name="line-574"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B82'</span><span class='layout'>,</span> <span class='chr'>'\x0B83'</span><span class='layout'>)</span>
-<a name="line-575"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BBE'</span><span class='layout'>,</span> <span class='chr'>'\x0BC2'</span><span class='layout'>)</span>
-<a name="line-576"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BC6'</span><span class='layout'>,</span> <span class='chr'>'\x0BC8'</span><span class='layout'>)</span>
-<a name="line-577"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BCA'</span><span class='layout'>,</span> <span class='chr'>'\x0BCD'</span><span class='layout'>)</span>
-<a name="line-578"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BD7'</span><span class='layout'>,</span> <span class='chr'>'\x0BD7'</span><span class='layout'>)</span>
-<a name="line-579"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C01'</span><span class='layout'>,</span> <span class='chr'>'\x0C03'</span><span class='layout'>)</span>
-<a name="line-580"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C3E'</span><span class='layout'>,</span> <span class='chr'>'\x0C44'</span><span class='layout'>)</span>
-<a name="line-581"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C46'</span><span class='layout'>,</span> <span class='chr'>'\x0C48'</span><span class='layout'>)</span>
-<a name="line-582"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C4A'</span><span class='layout'>,</span> <span class='chr'>'\x0C4D'</span><span class='layout'>)</span>
-<a name="line-583"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C55'</span><span class='layout'>,</span> <span class='chr'>'\x0C56'</span><span class='layout'>)</span>
-<a name="line-584"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C82'</span><span class='layout'>,</span> <span class='chr'>'\x0C83'</span><span class='layout'>)</span>
-<a name="line-585"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CBE'</span><span class='layout'>,</span> <span class='chr'>'\x0CC4'</span><span class='layout'>)</span>
-<a name="line-586"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CC6'</span><span class='layout'>,</span> <span class='chr'>'\x0CC8'</span><span class='layout'>)</span>
-<a name="line-587"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CCA'</span><span class='layout'>,</span> <span class='chr'>'\x0CCD'</span><span class='layout'>)</span>
-<a name="line-588"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CD5'</span><span class='layout'>,</span> <span class='chr'>'\x0CD6'</span><span class='layout'>)</span>
-<a name="line-589"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D02'</span><span class='layout'>,</span> <span class='chr'>'\x0D03'</span><span class='layout'>)</span>
-<a name="line-590"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D3E'</span><span class='layout'>,</span> <span class='chr'>'\x0D43'</span><span class='layout'>)</span>
-<a name="line-591"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D46'</span><span class='layout'>,</span> <span class='chr'>'\x0D48'</span><span class='layout'>)</span>
-<a name="line-592"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D4A'</span><span class='layout'>,</span> <span class='chr'>'\x0D4D'</span><span class='layout'>)</span>
-<a name="line-593"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D57'</span><span class='layout'>,</span> <span class='chr'>'\x0D57'</span><span class='layout'>)</span>
-<a name="line-594"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E31'</span><span class='layout'>,</span> <span class='chr'>'\x0E31'</span><span class='layout'>)</span>
-<a name="line-595"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E34'</span><span class='layout'>,</span> <span class='chr'>'\x0E3A'</span><span class='layout'>)</span>
-<a name="line-596"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E47'</span><span class='layout'>,</span> <span class='chr'>'\x0E4E'</span><span class='layout'>)</span>
-<a name="line-597"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB1'</span><span class='layout'>,</span> <span class='chr'>'\x0EB1'</span><span class='layout'>)</span>
-<a name="line-598"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB4'</span><span class='layout'>,</span> <span class='chr'>'\x0EB9'</span><span class='layout'>)</span>
-<a name="line-599"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EBB'</span><span class='layout'>,</span> <span class='chr'>'\x0EBC'</span><span class='layout'>)</span>
-<a name="line-600"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC8'</span><span class='layout'>,</span> <span class='chr'>'\x0ECD'</span><span class='layout'>)</span>
-<a name="line-601"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F18'</span><span class='layout'>,</span> <span class='chr'>'\x0F19'</span><span class='layout'>)</span>
-<a name="line-602"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F35'</span><span class='layout'>,</span> <span class='chr'>'\x0F35'</span><span class='layout'>)</span>
-<a name="line-603"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F37'</span><span class='layout'>,</span> <span class='chr'>'\x0F37'</span><span class='layout'>)</span>
-<a name="line-604"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F39'</span><span class='layout'>,</span> <span class='chr'>'\x0F39'</span><span class='layout'>)</span>
-<a name="line-605"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F3E'</span><span class='layout'>,</span> <span class='chr'>'\x0F3E'</span><span class='layout'>)</span>
-<a name="line-606"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F3F'</span><span class='layout'>,</span> <span class='chr'>'\x0F3F'</span><span class='layout'>)</span>
-<a name="line-607"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F71'</span><span class='layout'>,</span> <span class='chr'>'\x0F84'</span><span class='layout'>)</span>
-<a name="line-608"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F86'</span><span class='layout'>,</span> <span class='chr'>'\x0F8B'</span><span class='layout'>)</span>
-<a name="line-609"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F90'</span><span class='layout'>,</span> <span class='chr'>'\x0F95'</span><span class='layout'>)</span>
-<a name="line-610"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F97'</span><span class='layout'>,</span> <span class='chr'>'\x0F97'</span><span class='layout'>)</span>
-<a name="line-611"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F99'</span><span class='layout'>,</span> <span class='chr'>'\x0FAD'</span><span class='layout'>)</span>
-<a name="line-612"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0FB1'</span><span class='layout'>,</span> <span class='chr'>'\x0FB7'</span><span class='layout'>)</span>
-<a name="line-613"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0FB9'</span><span class='layout'>,</span> <span class='chr'>'\x0FB9'</span><span class='layout'>)</span>
-<a name="line-614"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x20D0'</span><span class='layout'>,</span> <span class='chr'>'\x20DC'</span><span class='layout'>)</span>
-<a name="line-615"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x20E1'</span><span class='layout'>,</span> <span class='chr'>'\x20E1'</span><span class='layout'>)</span>
-<a name="line-616"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x302A'</span><span class='layout'>,</span> <span class='chr'>'\x302F'</span><span class='layout'>)</span>
-<a name="line-617"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3099'</span><span class='layout'>,</span> <span class='chr'>'\x3099'</span><span class='layout'>)</span>
-<a name="line-618"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x309A'</span><span class='layout'>,</span> <span class='chr'>'\x309A'</span><span class='layout'>)</span>
-<a name="line-619"></a>      <span class='keyglyph'>]</span>
-<a name="line-620"></a>
-<a name="line-621"></a><span class='comment'>-- |</span>
-<a name="line-622"></a><span class='comment'>-- checking for XML digit</span>
-<a name="line-623"></a>
-<a name="line-624"></a><a name="isXmlDigit"></a><span class='definition'>isXmlDigit</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-625"></a><span class='definition'>isXmlDigit</span> <span class='varid'>c</span>
-<a name="line-626"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-627"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0030'</span><span class='layout'>,</span> <span class='chr'>'\x0039'</span><span class='layout'>)</span>
-<a name="line-628"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0660'</span><span class='layout'>,</span> <span class='chr'>'\x0669'</span><span class='layout'>)</span>
-<a name="line-629"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06F0'</span><span class='layout'>,</span> <span class='chr'>'\x06F9'</span><span class='layout'>)</span>
-<a name="line-630"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0966'</span><span class='layout'>,</span> <span class='chr'>'\x096F'</span><span class='layout'>)</span>
-<a name="line-631"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09E6'</span><span class='layout'>,</span> <span class='chr'>'\x09EF'</span><span class='layout'>)</span>
-<a name="line-632"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A66'</span><span class='layout'>,</span> <span class='chr'>'\x0A6F'</span><span class='layout'>)</span>
-<a name="line-633"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AE6'</span><span class='layout'>,</span> <span class='chr'>'\x0AEF'</span><span class='layout'>)</span>
-<a name="line-634"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B66'</span><span class='layout'>,</span> <span class='chr'>'\x0B6F'</span><span class='layout'>)</span>
-<a name="line-635"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BE7'</span><span class='layout'>,</span> <span class='chr'>'\x0BEF'</span><span class='layout'>)</span>
-<a name="line-636"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C66'</span><span class='layout'>,</span> <span class='chr'>'\x0C6F'</span><span class='layout'>)</span>
-<a name="line-637"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CE6'</span><span class='layout'>,</span> <span class='chr'>'\x0CEF'</span><span class='layout'>)</span>
-<a name="line-638"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D66'</span><span class='layout'>,</span> <span class='chr'>'\x0D6F'</span><span class='layout'>)</span>
-<a name="line-639"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E50'</span><span class='layout'>,</span> <span class='chr'>'\x0E59'</span><span class='layout'>)</span>
-<a name="line-640"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ED0'</span><span class='layout'>,</span> <span class='chr'>'\x0ED9'</span><span class='layout'>)</span>
-<a name="line-641"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F20'</span><span class='layout'>,</span> <span class='chr'>'\x0F29'</span><span class='layout'>)</span>
-<a name="line-642"></a>      <span class='keyglyph'>]</span>
-<a name="line-643"></a>
-<a name="line-644"></a><span class='comment'>-- |</span>
-<a name="line-645"></a><span class='comment'>-- checking for XML extender</span>
-<a name="line-646"></a>
-<a name="line-647"></a><a name="isXmlExtender"></a><span class='definition'>isXmlExtender</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-648"></a><span class='definition'>isXmlExtender</span> <span class='varid'>c</span>
-<a name="line-649"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-650"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x00B7'</span><span class='layout'>,</span> <span class='chr'>'\x00B7'</span><span class='layout'>)</span>
-<a name="line-651"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02D0'</span><span class='layout'>,</span> <span class='chr'>'\x02D0'</span><span class='layout'>)</span>
-<a name="line-652"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02D1'</span><span class='layout'>,</span> <span class='chr'>'\x02D1'</span><span class='layout'>)</span>
-<a name="line-653"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0387'</span><span class='layout'>,</span> <span class='chr'>'\x0387'</span><span class='layout'>)</span>
-<a name="line-654"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0640'</span><span class='layout'>,</span> <span class='chr'>'\x0640'</span><span class='layout'>)</span>
-<a name="line-655"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E46'</span><span class='layout'>,</span> <span class='chr'>'\x0E46'</span><span class='layout'>)</span>
-<a name="line-656"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC6'</span><span class='layout'>,</span> <span class='chr'>'\x0EC6'</span><span class='layout'>)</span>
-<a name="line-657"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3005'</span><span class='layout'>,</span> <span class='chr'>'\x3005'</span><span class='layout'>)</span>
-<a name="line-658"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3031'</span><span class='layout'>,</span> <span class='chr'>'\x3035'</span><span class='layout'>)</span>
-<a name="line-659"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x309D'</span><span class='layout'>,</span> <span class='chr'>'\x309E'</span><span class='layout'>)</span>
-<a name="line-660"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x30FC'</span><span class='layout'>,</span> <span class='chr'>'\x30FE'</span><span class='layout'>)</span>
-<a name="line-661"></a>      <span class='keyglyph'>]</span>
-<a name="line-662"></a>
-<a name="line-663"></a><span class='comment'>-- |</span>
-<a name="line-664"></a><span class='comment'>-- checking for XML control or permanently discouraged char</span>
-<a name="line-665"></a><span class='comment'>--</span>
-<a name="line-666"></a><span class='comment'>-- see Errata to XML1.0 (http:\/\/www.w3.org\/XML\/xml-V10-2e-errata) No 46</span>
-<a name="line-667"></a><span class='comment'>--</span>
-<a name="line-668"></a><span class='comment'>-- Document authors are encouraged to avoid "compatibility characters",</span>
-<a name="line-669"></a><span class='comment'>-- as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).</span>
-<a name="line-670"></a><span class='comment'>-- The characters defined in the following ranges are also discouraged.</span>
-<a name="line-671"></a><span class='comment'>-- They are either control characters or permanently undefined Unicode characters:</span>
-<a name="line-672"></a>
-<a name="line-673"></a>
-<a name="line-674"></a><a name="isXmlControlOrPermanentlyUndefined"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-675"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span> <span class='varid'>c</span>
-<a name="line-676"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
-<a name="line-677"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x7F'</span><span class='layout'>,</span> <span class='chr'>'\x84'</span><span class='layout'>)</span>
-<a name="line-678"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x86'</span><span class='layout'>,</span> <span class='chr'>'\x9F'</span><span class='layout'>)</span>
-<a name="line-679"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xFDD0'</span><span class='layout'>,</span> <span class='chr'>'\xFDDF'</span><span class='layout'>)</span>
-<a name="line-680"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x1FFFF'</span><span class='layout'>)</span>
-<a name="line-681"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x2FFFF'</span><span class='layout'>)</span>
-<a name="line-682"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x3FFFF'</span><span class='layout'>)</span>
-<a name="line-683"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x4FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x4FFFF'</span><span class='layout'>)</span>
-<a name="line-684"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x5FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x5FFFF'</span><span class='layout'>)</span>
-<a name="line-685"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x6FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x6FFFF'</span><span class='layout'>)</span>
-<a name="line-686"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x7FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x7FFFF'</span><span class='layout'>)</span>
-<a name="line-687"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x8FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x8FFFF'</span><span class='layout'>)</span>
-<a name="line-688"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x9FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x9FFFF'</span><span class='layout'>)</span>
-<a name="line-689"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xAFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xAFFFF'</span><span class='layout'>)</span>
-<a name="line-690"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xBFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xBFFFF'</span><span class='layout'>)</span>
-<a name="line-691"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xCFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xCFFFF'</span><span class='layout'>)</span>
-<a name="line-692"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xDFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xDFFFF'</span><span class='layout'>)</span>
-<a name="line-693"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xEFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xEFFFF'</span><span class='layout'>)</span>
-<a name="line-694"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xFFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xFFFFF'</span><span class='layout'>)</span>
-<a name="line-695"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span>
-<a name="line-696"></a>      <span class='keyglyph'>]</span>
-<a name="line-697"></a>
-<a name="line-698"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-699"></a>
-<a name="line-700"></a><a name="isInList"></a><span class='definition'>isInList</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Unicode</span><span class='layout'>,</span> <span class='conid'>Unicode</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-701"></a><span class='definition'>isInList</span> <span class='varid'>i</span> <span class='keyglyph'>=</span>
-<a name="line-702"></a>   <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>lb</span><span class='layout'>,</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='varid'>lb</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='varid'>ub</span> <span class='varop'>||</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>False</span>
-<a name="line-703"></a>   <span class='comment'>{- The expression (i&gt;=lb &amp;&amp; i&lt;=ub) || b would work more generally,
-<a name="line-704"></a>      but in a sorted list, the above one aborts the computation as early as possible. -}</span>
-<a name="line-705"></a>
-<a name="line-706"></a><span class='comment'>{-
-<a name="line-707"></a>isInList'	:: Unicode -&gt; [(Unicode, Unicode)] -&gt; Bool
-<a name="line-708"></a>isInList' i ((lb, ub) : l)
-<a name="line-709"></a>    | i &lt;  lb	= False
-<a name="line-710"></a>    | i &lt;= ub	= True
-<a name="line-711"></a>    | otherwise = isInList' i l
-<a name="line-712"></a>
-<a name="line-713"></a>isInList' _ []
-<a name="line-714"></a>    = False
-<a name="line-715"></a>
-<a name="line-716"></a>{- works, but is not so fast -}
-<a name="line-717"></a>isInList''	:: Unicode -&gt; [(Unicode, Unicode)] -&gt; Bool
-<a name="line-718"></a>isInList'' i = any (flip isInRange i)
-<a name="line-719"></a>
-<a name="line-720"></a>-- move to an Utility module?
-<a name="line-721"></a>isInRange	:: Ord a =&gt; (a,a) -&gt; a -&gt; Bool
-<a name="line-722"></a>isInRange (l,r) x = l&lt;=x &amp;&amp; x&lt;=r
-<a name="line-723"></a>
-<a name="line-724"></a>propIsInList :: Bool
-<a name="line-725"></a>propIsInList =
-<a name="line-726"></a>   all
-<a name="line-727"></a>     (\c -&gt; let dict = [ ('\x0041', '\x005A'), ('\x0061', '\x007A') ]
-<a name="line-728"></a>                b0 = isInList c dict
-<a name="line-729"></a>                b1 = isInList' c dict
-<a name="line-730"></a>                b2 = isInList'' c dict
-<a name="line-731"></a>            in  b0 == b1 &amp;&amp; b0 == b2)
-<a name="line-732"></a>     ['\x00'..'\x100']
-<a name="line-733"></a>-}</span>
-<a name="line-734"></a>
-<a name="line-735"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-736"></a>
-<a name="line-737"></a><span class='comment'>-- |</span>
-<a name="line-738"></a><span class='comment'>-- code conversion from latin1 to Unicode</span>
-<a name="line-739"></a>
-<a name="line-740"></a><a name="latin1ToUnicode"></a><span class='definition'>latin1ToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-741"></a><span class='definition'>latin1ToUnicode</span>	<span class='keyglyph'>=</span> <span class='varid'>id</span>
-<a name="line-742"></a>
-<a name="line-743"></a><a name="latinToUnicode"></a><span class='definition'>latinToUnicode</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-744"></a><span class='definition'>latinToUnicode</span> <span class='varid'>tt</span>
-<a name="line-745"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>charToUni</span>
-<a name="line-746"></a>    <span class='keyword'>where</span>
-<a name="line-747"></a>    <span class='varid'>charToUni</span> <span class='varid'>c</span> <span class='keyglyph'>=</span>
-<a name="line-748"></a>       <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>src</span><span class='layout'>,</span><span class='varid'>dst</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-749"></a>          <span class='keyword'>case</span> <span class='varid'>compare</span> <span class='varid'>c</span> <span class='varid'>src</span> <span class='keyword'>of</span>
-<a name="line-750"></a>             <span class='conid'>EQ</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>dst</span>
-<a name="line-751"></a>             <span class='conid'>LT</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='comment'>{- not found in table -}</span>
-<a name="line-752"></a>             <span class='conid'>GT</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='varid'>tt</span>
-<a name="line-753"></a>
-<a name="line-754"></a><span class='comment'>-- | conversion from ASCII to unicode with check for legal ASCII char set</span>
-<a name="line-755"></a><span class='comment'>--</span>
-<a name="line-756"></a><span class='comment'>-- Structure of decoding function copied from 'Data.Char.UTF8.decode'.</span>
-<a name="line-757"></a>
-<a name="line-758"></a><a name="decodeAscii"></a><span class='definition'>decodeAscii</span>	<span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>
-<a name="line-759"></a><span class='definition'>decodeAscii</span>
-<a name="line-760"></a>    <span class='keyglyph'>=</span> <span class='varid'>swap</span> <span class='varop'>.</span> <span class='varid'>partitionEither</span> <span class='varop'>.</span> <span class='varid'>decodeAsciiEmbedErrors</span>
-<a name="line-761"></a>
-<a name="line-762"></a><a name="decodeAsciiEmbedErrors"></a><span class='definition'>decodeAsciiEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UStringWithErrors</span>
-<a name="line-763"></a><span class='definition'>decodeAsciiEmbedErrors</span> <span class='varid'>str</span>
-<a name="line-764"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>pos</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>isValid</span> <span class='varid'>c</span>
-<a name="line-765"></a>                         <span class='keyword'>then</span> <span class='conid'>Right</span> <span class='varid'>c</span>
-<a name="line-766"></a>                         <span class='keyword'>else</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>toErrStr</span> <span class='varid'>c</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>posStr</span>
-<a name="line-767"></a>    <span class='keyword'>where</span>
-<a name="line-768"></a>    <span class='varid'>posStr</span> <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>str</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>
-<a name="line-769"></a>    <span class='varid'>toErrStr</span> <span class='varid'>errChr</span> <span class='varid'>pos</span>
-<a name="line-770"></a>	<span class='keyglyph'>=</span> <span class='str'>" at input position "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>": none ASCII char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>errChr</span>
-<a name="line-771"></a>    <span class='varid'>isValid</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>&lt;</span> <span class='chr'>'\x80'</span>
-<a name="line-772"></a>
-<a name="line-773"></a><span class='comment'>-- |</span>
-<a name="line-774"></a><span class='comment'>-- UCS-2 big endian to Unicode conversion</span>
-<a name="line-775"></a>
-<a name="line-776"></a><a name="ucs2BigEndianToUnicode"></a><span class='definition'>ucs2BigEndianToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-777"></a>
-<a name="line-778"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='conop'>:</span> <span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>r</span><span class='layout'>)</span>
-<a name="line-779"></a>    <span class='keyglyph'>=</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>b</span> <span class='varop'>*</span> <span class='num'>256</span> <span class='varop'>+</span> <span class='varid'>fromEnum</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>r</span>
-<a name="line-780"></a>
-<a name="line-781"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='conid'>[]</span>
-<a name="line-782"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-783"></a>
-<a name="line-784"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='keyword'>_</span>
-<a name="line-785"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>				<span class='comment'>-- error "illegal UCS-2 byte input sequence with odd length"</span>
-<a name="line-786"></a>					<span class='comment'>-- is ignored (garbage in, garbage out)</span>
-<a name="line-787"></a>
-<a name="line-788"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-789"></a>
-<a name="line-790"></a><span class='comment'>-- |</span>
-<a name="line-791"></a><span class='comment'>-- UCS-2 little endian to Unicode conversion</span>
-<a name="line-792"></a>
-<a name="line-793"></a><a name="ucs2LittleEndianToUnicode"></a><span class='definition'>ucs2LittleEndianToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-794"></a>
-<a name="line-795"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>b</span> <span class='conop'>:</span> <span class='varid'>r</span><span class='layout'>)</span>
-<a name="line-796"></a>    <span class='keyglyph'>=</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>b</span> <span class='varop'>*</span> <span class='num'>256</span> <span class='varop'>+</span> <span class='varid'>fromEnum</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>r</span>
-<a name="line-797"></a>
-<a name="line-798"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='conid'>[]</span>
-<a name="line-799"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-800"></a>
-<a name="line-801"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span>
-<a name="line-802"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>				<span class='comment'>-- error "illegal UCS-2 byte input sequence with odd length"</span>
-<a name="line-803"></a>					<span class='comment'>-- is ignored</span>
-<a name="line-804"></a>
-<a name="line-805"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-806"></a>
-<a name="line-807"></a><span class='comment'>-- |</span>
-<a name="line-808"></a><span class='comment'>-- UCS-2 to UTF-8 conversion with byte order mark analysis</span>
-<a name="line-809"></a>
-<a name="line-810"></a><a name="ucs2ToUnicode"></a><span class='definition'>ucs2ToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-811"></a>
-<a name="line-812"></a><span class='definition'>ucs2ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- 2 byte mark for big endian encoding</span>
-<a name="line-813"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>
-<a name="line-814"></a>
-<a name="line-815"></a><span class='definition'>ucs2ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- 2 byte mark for little endian encoding</span>
-<a name="line-816"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>
-<a name="line-817"></a>
-<a name="line-818"></a><span class='definition'>ucs2ToUnicode</span> <span class='varid'>s</span>
-<a name="line-819"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>		<span class='comment'>-- default: big endian</span>
-<a name="line-820"></a>
-<a name="line-821"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-822"></a>
-<a name="line-823"></a><span class='comment'>-- |</span>
-<a name="line-824"></a><span class='comment'>-- UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1</span>
-<a name="line-825"></a>
-<a name="line-826"></a><a name="utf8ToUnicode"></a><span class='definition'>utf8ToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>
-<a name="line-827"></a>
-<a name="line-828"></a><span class='definition'>utf8ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='comment'>-- remove byte order mark ( XML standard F.1 )</span>
-<a name="line-829"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>
-<a name="line-830"></a>
-<a name="line-831"></a><span class='definition'>utf8ToUnicode</span> <span class='varid'>s</span>
-<a name="line-832"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>
-<a name="line-833"></a>
-<a name="line-834"></a><a name="utf8ToUnicodeEmbedErrors"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>DecodingFctEmbedErrors</span>
-<a name="line-835"></a>
-<a name="line-836"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='comment'>-- remove byte order mark ( XML standard F.1 )</span>
-<a name="line-837"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>
-<a name="line-838"></a>
-<a name="line-839"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='varid'>s</span>
-<a name="line-840"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>
-<a name="line-841"></a>
-<a name="line-842"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-843"></a>
-<a name="line-844"></a><span class='comment'>-- |</span>
-<a name="line-845"></a><span class='comment'>-- UTF-16 big endian to UTF-8 conversion with removal of byte order mark</span>
-<a name="line-846"></a>
-<a name="line-847"></a><a name="utf16beToUnicode"></a><span class='definition'>utf16beToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-848"></a>
-<a name="line-849"></a><span class='definition'>utf16beToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- remove byte order mark</span>
-<a name="line-850"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>
-<a name="line-851"></a>
-<a name="line-852"></a><span class='definition'>utf16beToUnicode</span> <span class='varid'>s</span>
-<a name="line-853"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>
-<a name="line-854"></a>
-<a name="line-855"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-856"></a>
-<a name="line-857"></a><span class='comment'>-- |</span>
-<a name="line-858"></a><span class='comment'>-- UTF-16 little endian to UTF-8 conversion with removal of byte order mark</span>
-<a name="line-859"></a>
-<a name="line-860"></a><a name="utf16leToUnicode"></a><span class='definition'>utf16leToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
-<a name="line-861"></a>
-<a name="line-862"></a><span class='definition'>utf16leToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- remove byte order mark</span>
-<a name="line-863"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>
-<a name="line-864"></a>
-<a name="line-865"></a><span class='definition'>utf16leToUnicode</span> <span class='varid'>s</span>
-<a name="line-866"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>
-<a name="line-867"></a>
-<a name="line-868"></a>
-<a name="line-869"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-870"></a>
-<a name="line-871"></a><span class='comment'>-- |</span>
-<a name="line-872"></a><span class='comment'>-- substitute all Unicode characters, that are not legal 1-byte</span>
-<a name="line-873"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>
-<a name="line-874"></a><span class='comment'>--</span>
-<a name="line-875"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>
-<a name="line-876"></a><span class='comment'>-- attribute values into pure ascii.</span>
-<a name="line-877"></a><span class='comment'>--</span>
-<a name="line-878"></a><span class='comment'>-- see also : 'unicodeToLatin1'</span>
-<a name="line-879"></a>
-<a name="line-880"></a><a name="unicodeToXmlEntity"></a><span class='definition'>unicodeToXmlEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-881"></a><span class='definition'>unicodeToXmlEntity</span>
-<a name="line-882"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>is1ByteXmlChar</span> <span class='layout'>(</span><span class='varid'>intToCharRef</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>
-<a name="line-883"></a>
-<a name="line-884"></a><span class='comment'>-- |</span>
-<a name="line-885"></a><span class='comment'>-- substitute all Unicode characters, that are not legal latin1</span>
-<a name="line-886"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>
-<a name="line-887"></a><span class='comment'>--</span>
-<a name="line-888"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>
-<a name="line-889"></a><span class='comment'>-- attribute values into ISO latin1.</span>
-<a name="line-890"></a><span class='comment'>--</span>
-<a name="line-891"></a><span class='comment'>-- see also : 'unicodeToXmlEntity'</span>
-<a name="line-892"></a>
-<a name="line-893"></a><a name="unicodeToLatin1"></a><span class='definition'>unicodeToLatin1</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-894"></a><span class='definition'>unicodeToLatin1</span>
-<a name="line-895"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>isXmlLatin1Char</span> <span class='layout'>(</span><span class='varid'>intToCharRef</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>
-<a name="line-896"></a>
-<a name="line-897"></a>
-<a name="line-898"></a><a name="escape"></a><span class='comment'>-- |</span>
-<a name="line-899"></a><span class='comment'>-- substitute selected characters</span>
-<a name="line-900"></a><span class='comment'>-- The @check@ function returns 'True' whenever a character needs to substitution</span>
-<a name="line-901"></a><span class='comment'>-- The function @esc@ computes a substitute.</span>
-<a name="line-902"></a><span class='definition'>escape</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-903"></a><span class='definition'>escape</span> <span class='varid'>check</span> <span class='varid'>esc</span> <span class='keyglyph'>=</span>
-<a name="line-904"></a>    <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>uc</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>check</span> <span class='varid'>uc</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>uc</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>esc</span> <span class='varid'>uc</span><span class='layout'>)</span>
-<a name="line-905"></a>
-<a name="line-906"></a><span class='comment'>-- |</span>
-<a name="line-907"></a><span class='comment'>-- removes all non ascii chars, may be used to transform</span>
-<a name="line-908"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>
-<a name="line-909"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>
-<a name="line-910"></a><span class='comment'>--</span>
-<a name="line-911"></a><span class='comment'>-- see also : 'unicodeRemoveNoneLatin1', 'unicodeToXmlEntity'</span>
-<a name="line-912"></a>
-<a name="line-913"></a><a name="unicodeRemoveNoneAscii"></a><span class='definition'>unicodeRemoveNoneAscii</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-914"></a><span class='definition'>unicodeRemoveNoneAscii</span>
-<a name="line-915"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>is1ByteXmlChar</span>
-<a name="line-916"></a>
-<a name="line-917"></a><span class='comment'>-- |</span>
-<a name="line-918"></a><span class='comment'>-- removes all non latin1 chars, may be used to transform</span>
-<a name="line-919"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>
-<a name="line-920"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>
-<a name="line-921"></a><span class='comment'>--</span>
-<a name="line-922"></a><span class='comment'>-- see also : 'unicodeRemoveNoneAscii', 'unicodeToLatin1'</span>
-<a name="line-923"></a>
-<a name="line-924"></a><a name="unicodeRemoveNoneLatin1"></a><span class='definition'>unicodeRemoveNoneLatin1</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-925"></a><span class='definition'>unicodeRemoveNoneLatin1</span>
-<a name="line-926"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isXmlLatin1Char</span>
-<a name="line-927"></a>
-<a name="line-928"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-929"></a>
-<a name="line-930"></a><span class='comment'>-- |</span>
-<a name="line-931"></a><span class='comment'>-- convert an Unicode into a XML character reference.</span>
-<a name="line-932"></a><span class='comment'>--</span>
-<a name="line-933"></a><span class='comment'>-- see also : 'intToCharRefHex'</span>
-<a name="line-934"></a>
-<a name="line-935"></a><a name="intToCharRef"></a><span class='definition'>intToCharRef</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-936"></a><span class='definition'>intToCharRef</span> <span class='varid'>i</span>
-<a name="line-937"></a>    <span class='keyglyph'>=</span> <span class='str'>"&amp;#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>";"</span>
-<a name="line-938"></a>
-<a name="line-939"></a><span class='comment'>-- |</span>
-<a name="line-940"></a><span class='comment'>-- convert an Unicode into a XML hexadecimal character reference.</span>
-<a name="line-941"></a><span class='comment'>--</span>
-<a name="line-942"></a><span class='comment'>-- see also: 'intToCharRef'</span>
-<a name="line-943"></a>
-<a name="line-944"></a><a name="intToCharRefHex"></a><span class='definition'>intToCharRefHex</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-945"></a><span class='definition'>intToCharRefHex</span> <span class='varid'>i</span>
-<a name="line-946"></a>    <span class='keyglyph'>=</span> <span class='str'>"&amp;#x"</span> <span class='varop'>++</span> <span class='varid'>h2</span> <span class='varop'>++</span> <span class='str'>";"</span>
-<a name="line-947"></a>      <span class='keyword'>where</span>
-<a name="line-948"></a>      <span class='varid'>h1</span> <span class='keyglyph'>=</span> <span class='varid'>intToHexString</span> <span class='varid'>i</span>
-<a name="line-949"></a>      <span class='varid'>h2</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>h1</span> <span class='varop'>`mod`</span> <span class='num'>2</span> <span class='varop'>==</span> <span class='num'>1</span>
-<a name="line-950"></a>	   <span class='keyword'>then</span> <span class='chr'>'0'</span><span class='conop'>:</span> <span class='varid'>h1</span>
-<a name="line-951"></a>	   <span class='keyword'>else</span> <span class='varid'>h1</span>
-<a name="line-952"></a>
-<a name="line-953"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-954"></a><span class='comment'>--</span>
-<a name="line-955"></a><span class='comment'>-- | White Space (XML Standard 2.3) and</span>
-<a name="line-956"></a><span class='comment'>-- end of line handling (2.11)</span>
-<a name="line-957"></a><span class='comment'>--</span>
-<a name="line-958"></a><span class='comment'>-- \#x0D and \#x0D\#x0A are mapped to \#x0A</span>
-<a name="line-959"></a>
-<a name="line-960"></a><a name="normalizeNL"></a><span class='definition'>normalizeNL</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-961"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='chr'>'\r'</span> <span class='conop'>:</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>
-<a name="line-962"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='chr'>'\r'</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>
-<a name="line-963"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>c</span>    <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>
-<a name="line-964"></a><span class='definition'>normalizeNL</span> <span class='conid'>[]</span>				<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-965"></a>
-<a name="line-966"></a>
-<a name="line-967"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-968"></a>
-<a name="line-969"></a><span class='comment'>-- |</span>
-<a name="line-970"></a><span class='comment'>-- the table of supported character encoding schemes and the associated</span>
-<a name="line-971"></a><span class='comment'>-- conversion functions into Unicode:q</span>
-<a name="line-972"></a>
-<a name="line-973"></a><span class='comment'>{-
-<a name="line-974"></a>This table could be derived from decodingTableEither,
-<a name="line-975"></a>but this way it is certainly more efficient.
-<a name="line-976"></a>-}</span>
-<a name="line-977"></a>
-<a name="line-978"></a><a name="decodingTable"></a><span class='definition'>decodingTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>DecodingFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-979"></a><span class='definition'>decodingTable</span>
-<a name="line-980"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span>		<span class='varid'>utf8ToUnicode</span>				<span class='layout'>)</span>
-<a name="line-981"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>latin1ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-982"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span>	<span class='varid'>decodeAscii</span>				<span class='layout'>)</span>
-<a name="line-983"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-984"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-985"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16be</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16beToUnicode</span>		<span class='layout'>)</span>
-<a name="line-986"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16le</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16leToUnicode</span>		<span class='layout'>)</span>
-<a name="line-987"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_2</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_2</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-988"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_3</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_3</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-989"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_4</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_4</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-990"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_5</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_5</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-991"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_6</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_6</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-992"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_7</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_7</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-993"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_8</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_8</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-994"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_9</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_9</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-995"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_10</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_10</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-996"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_11</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_11</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-997"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_13</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_13</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-998"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_14</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_14</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-999"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_15</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_15</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1000"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_16</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_16</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1001"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>unicodeString</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>
-<a name="line-1002"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>	<span class='comment'>-- default</span>
-<a name="line-1003"></a>      <span class='keyglyph'>]</span>
-<a name="line-1004"></a>    <span class='keyword'>where</span>
-<a name="line-1005"></a>    <span class='varid'>liftDecFct</span> <span class='varid'>df</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>df</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-1006"></a>
-<a name="line-1007"></a><span class='comment'>-- |</span>
-<a name="line-1008"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>
-<a name="line-1009"></a>
-<a name="line-1010"></a><a name="getDecodingFct"></a><span class='definition'>getDecodingFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFct</span>
-<a name="line-1011"></a><span class='definition'>getDecodingFct</span> <span class='varid'>enc</span>
-<a name="line-1012"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>decodingTable</span>
-<a name="line-1013"></a>
-<a name="line-1014"></a>
-<a name="line-1015"></a><span class='comment'>-- |</span>
-<a name="line-1016"></a><span class='comment'>-- Similar to 'decodingTable' but it embeds errors</span>
-<a name="line-1017"></a><span class='comment'>-- in the string of decoded characters.</span>
-<a name="line-1018"></a>
-<a name="line-1019"></a><a name="decodingTableEmbedErrors"></a><span class='definition'>decodingTableEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-1020"></a><span class='definition'>decodingTableEmbedErrors</span>
-<a name="line-1021"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span>		<span class='varid'>utf8ToUnicodeEmbedErrors</span>		<span class='layout'>)</span>
-<a name="line-1022"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>latin1ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-1023"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span>	<span class='varid'>decodeAsciiEmbedErrors</span>			<span class='layout'>)</span>
-<a name="line-1024"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-1025"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-1026"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16be</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16beToUnicode</span>		<span class='layout'>)</span>
-<a name="line-1027"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16le</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16leToUnicode</span>		<span class='layout'>)</span>
-<a name="line-1028"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_2</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_2</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1029"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_3</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_3</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1030"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_4</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_4</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1031"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_5</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_5</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1032"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_6</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_6</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1033"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_7</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_7</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1034"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_8</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_8</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1035"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_9</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_9</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1036"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_10</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_10</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1037"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_11</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_11</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1038"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_13</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_13</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1039"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_14</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_14</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1040"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_15</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_15</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1041"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_16</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_16</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-1042"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>unicodeString</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>
-<a name="line-1043"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>	<span class='comment'>-- default</span>
-<a name="line-1044"></a>      <span class='keyglyph'>]</span>
-<a name="line-1045"></a>    <span class='keyword'>where</span>
-<a name="line-1046"></a>    <span class='varid'>liftDecFct</span> <span class='varid'>df</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>df</span>
-<a name="line-1047"></a>
-<a name="line-1048"></a><span class='comment'>-- |</span>
-<a name="line-1049"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>
-<a name="line-1050"></a>
-<a name="line-1051"></a><a name="getDecodingFctEmbedErrors"></a><span class='definition'>getDecodingFctEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFctEmbedErrors</span>
-<a name="line-1052"></a><span class='definition'>getDecodingFctEmbedErrors</span> <span class='varid'>enc</span>
-<a name="line-1053"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>decodingTableEmbedErrors</span>
-<a name="line-1054"></a>
-<a name="line-1055"></a>
-<a name="line-1056"></a>
-<a name="line-1057"></a><span class='comment'>-- |</span>
-<a name="line-1058"></a><span class='comment'>-- the table of supported output encoding schemes and the associated</span>
-<a name="line-1059"></a><span class='comment'>-- conversion functions from Unicode</span>
-<a name="line-1060"></a>
-<a name="line-1061"></a><a name="outputEncodingTable"></a><span class='definition'>outputEncodingTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-1062"></a><span class='definition'>outputEncodingTable</span>
-<a name="line-1063"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span>		<span class='varid'>unicodeToUtf8</span>		<span class='layout'>)</span>
-<a name="line-1064"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span>	<span class='varid'>unicodeToLatin1</span>		<span class='layout'>)</span>
-<a name="line-1065"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span>	<span class='varid'>unicodeToXmlEntity</span>	<span class='layout'>)</span>
-<a name="line-1066"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span>		<span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
-<a name="line-1067"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>		<span class='varid'>unicodeToUtf8</span>		<span class='layout'>)</span>	<span class='comment'>-- default</span>
-<a name="line-1068"></a>      <span class='keyglyph'>]</span>
-<a name="line-1069"></a>
-<a name="line-1070"></a><span class='comment'>-- |</span>
-<a name="line-1071"></a><span class='comment'>-- the lookup function for selecting the encoding function</span>
-<a name="line-1072"></a>
-<a name="line-1073"></a><a name="getOutputEncodingFct"></a><span class='definition'>getOutputEncodingFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span><span class='layout'>)</span>
-<a name="line-1074"></a><span class='definition'>getOutputEncodingFct</span> <span class='varid'>enc</span>
-<a name="line-1075"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>outputEncodingTable</span>
-<a name="line-1076"></a>
-<a name="line-1077"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-1078"></a><span class='comment'>--</span>
-<a name="line-1079"></a>
-<a name="line-1080"></a><a name="guessEncoding"></a><span class='definition'>guessEncoding</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-1081"></a>
-<a name="line-1082"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4LE"</span>		<span class='comment'>-- with byte order mark</span>
-<a name="line-1083"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>		<span class='comment'>-- with byte order mark</span>
-<a name="line-1084"></a>
-<a name="line-1085"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-3421"</span>		<span class='comment'>-- with byte order mark</span>
-<a name="line-1086"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>		<span class='comment'>-- with byte order mark</span>
-<a name="line-1087"></a>
-<a name="line-1088"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>utf8</span>			<span class='comment'>-- with byte order mark</span>
-<a name="line-1089"></a>
-<a name="line-1090"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4BE"</span>		<span class='comment'>-- with byte order mark</span>
-<a name="line-1091"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-2143"</span>		<span class='comment'>-- with byte order mark</span>
-<a name="line-1092"></a>
-<a name="line-1093"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4BE"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
-<a name="line-1094"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4LE"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
-<a name="line-1095"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-2143"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
-<a name="line-1096"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-3412"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
-<a name="line-1097"></a>
-<a name="line-1098"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3F'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>		<span class='comment'>-- "&lt;?" of "&lt;?xml"</span>
-<a name="line-1099"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3F'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>		<span class='comment'>-- "&lt;?" of "&lt;?xml"</span>
-<a name="line-1100"></a>
-<a name="line-1101"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x4C'</span><span class='conop'>:</span><span class='chr'>'\x6F'</span><span class='conop'>:</span><span class='chr'>'\xA7'</span><span class='conop'>:</span><span class='chr'>'\x94'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"EBCDIC"</span>		<span class='comment'>-- "&lt;?xm" of "&lt;?xml"</span>
-<a name="line-1102"></a>
-<a name="line-1103"></a><span class='definition'>guessEncoding</span> <span class='keyword'>_</span>					<span class='keyglyph'>=</span> <span class='str'>""</span>			<span class='comment'>-- no guess</span>
-<a name="line-1104"></a>
-<a name="line-1105"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
+<a name="line-6"></a>   License    : MIT
+<a name="line-7"></a>
+<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-9"></a>   Stability  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   Unicode and UTF-8 Conversion Functions
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
+<a name="line-19"></a>    <span class='layout'>(</span>
+<a name="line-20"></a>     <span class='comment'>-- * Unicode Type declarations</span>
+<a name="line-21"></a>     <span class='conid'>Unicode</span><span class='layout'>,</span>
+<a name="line-22"></a>     <span class='conid'>UString</span><span class='layout'>,</span>
+<a name="line-23"></a>     <span class='conid'>UTF8Char</span><span class='layout'>,</span>
+<a name="line-24"></a>     <span class='conid'>UTF8String</span><span class='layout'>,</span>
+<a name="line-25"></a>     <span class='conid'>UStringWithErrors</span><span class='layout'>,</span>
+<a name="line-26"></a>     <span class='conid'>DecodingFct</span><span class='layout'>,</span>
+<a name="line-27"></a>     <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>,</span>
+<a name="line-28"></a>
+<a name="line-29"></a>      <span class='comment'>-- * XML char predicates</span>
+<a name="line-30"></a>
+<a name="line-31"></a>      <span class='varid'>isXmlChar</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>isXmlLatin1Char</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>isXmlSpaceChar</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>isXml11SpaceChar</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNameChar</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNameStartChar</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameStartChar</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>isXmlPubidChar</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>isXmlLetter</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>isXmlBaseChar</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>isXmlIdeographicChar</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isXmlCombiningChar</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isXmlDigit</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>isXmlExtender</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>isXmlControlOrPermanentlyUndefined</span>
+<a name="line-47"></a>
+<a name="line-48"></a>      <span class='comment'>-- * UTF-8 and Unicode conversion functions</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>utf8ToUnicode</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>utf8ToUnicodeEmbedErrors</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>latin1ToUnicode</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>ucs2ToUnicode</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>ucs2BigEndianToUnicode</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>ucs2LittleEndianToUnicode</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>utf16beToUnicode</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>utf16leToUnicode</span>
+<a name="line-57"></a>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>unicodeCharToUtf8</span>
+<a name="line-59"></a>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToUtf8</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToXmlEntity</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToLatin1</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneAscii</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneLatin1</span>
+<a name="line-65"></a>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRef</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRefHex</span>
+<a name="line-68"></a>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>getDecodingFct</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>getDecodingFctEmbedErrors</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>getOutputEncodingFct</span>
+<a name="line-72"></a>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNL</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>guessEncoding</span>
+<a name="line-75"></a>    <span class='layout'>)</span>
+<a name="line-76"></a><span class='keyword'>where</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='layout'>(</span> <span class='varid'>toUpper</span> <span class='layout'>)</span>
+<a name="line-79"></a>
+<a name="line-80"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span> <span class='layout'>(</span> <span class='varid'>swap</span><span class='layout'>,</span> <span class='varid'>partitionEither</span> <span class='layout'>)</span>
+<a name="line-81"></a>
+<a name="line-82"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>IsoLatinTables</span>
+<a name="line-83"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>UTF8Decoding</span>	<span class='layout'>(</span> <span class='varid'>decodeUtf8</span><span class='layout'>,</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='layout'>)</span>
+<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>		<span class='layout'>(</span> <span class='varid'>intToHexString</span> <span class='layout'>)</span>
+<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
+<a name="line-86"></a>
+<a name="line-87"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='comment'>-- | Unicode is represented as the Char type</span>
+<a name="line-90"></a><span class='comment'>--   Precondition for this is the support of Unicode character range</span>
+<a name="line-91"></a><span class='comment'>--   in the compiler (e.g. ghc but not hugs)</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="Unicode"></a><span class='keyword'>type</span> <span class='conid'>Unicode</span>	<span class='keyglyph'>=</span> <span class='conid'>Char</span>
+<a name="line-94"></a>
+<a name="line-95"></a><span class='comment'>-- | the type for Unicode strings</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="UString"></a><span class='keyword'>type</span> <span class='conid'>UString</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Unicode</span><span class='keyglyph'>]</span>
+<a name="line-98"></a>
+<a name="line-99"></a><span class='comment'>-- | UTF-8 charachters are represented by the Char type</span>
+<a name="line-100"></a>
+<a name="line-101"></a><a name="UTF8Char"></a><span class='keyword'>type</span> <span class='conid'>UTF8Char</span>	<span class='keyglyph'>=</span> <span class='conid'>Char</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='comment'>-- | UTF-8 strings are implemented as Haskell strings</span>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="UTF8String"></a><span class='keyword'>type</span> <span class='conid'>UTF8String</span>	<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-106"></a>
+<a name="line-107"></a><span class='comment'>-- | Decoding function with a pair containing the result string and a list of decoding errors as result</span>
+<a name="line-108"></a>
+<a name="line-109"></a><a name="DecodingFct"></a><span class='keyword'>type</span> <span class='conid'>DecodingFct</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>UString</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="UStringWithErrors"></a><span class='keyword'>type</span> <span class='conid'>UStringWithErrors</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>Char</span><span class='keyglyph'>]</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='comment'>-- | Decoding function where decoding errors are interleaved with decoded characters</span>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="DecodingFctEmbedErrors"></a><span class='keyword'>type</span> <span class='conid'>DecodingFctEmbedErrors</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UStringWithErrors</span>
+<a name="line-116"></a>
+<a name="line-117"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-118"></a><span class='comment'>--</span>
+<a name="line-119"></a><span class='comment'>-- Unicode predicates</span>
+<a name="line-120"></a>
+<a name="line-121"></a><span class='comment'>-- |</span>
+<a name="line-122"></a><span class='comment'>-- test for a legal 1 byte XML char</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="is1ByteXmlChar"></a><span class='definition'>is1ByteXmlChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-125"></a><span class='definition'>is1ByteXmlChar</span> <span class='varid'>c</span>
+<a name="line-126"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&lt;</span> <span class='chr'>'\x80'</span>
+<a name="line-127"></a>      <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>' '</span>
+<a name="line-128"></a>	   <span class='varop'>||</span>
+<a name="line-129"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\n'</span>
+<a name="line-130"></a>	   <span class='varop'>||</span>
+<a name="line-131"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\t'</span>
+<a name="line-132"></a>	   <span class='varop'>||</span>
+<a name="line-133"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\r'</span>
+<a name="line-134"></a>	 <span class='layout'>)</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>-- |</span>
+<a name="line-137"></a><span class='comment'>-- test for a legal latin1 XML char</span>
+<a name="line-138"></a>
+<a name="line-139"></a><a name="isXmlLatin1Char"></a><span class='definition'>isXmlLatin1Char</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-140"></a><span class='definition'>isXmlLatin1Char</span> <span class='varid'>i</span>
+<a name="line-141"></a>    <span class='keyglyph'>=</span> <span class='varid'>is1ByteXmlChar</span> <span class='varid'>i</span>
+<a name="line-142"></a>      <span class='varop'>||</span>
+<a name="line-143"></a>      <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='chr'>'\x80'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='chr'>'\xff'</span><span class='layout'>)</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-146"></a>
+<a name="line-147"></a><span class='comment'>-- |</span>
+<a name="line-148"></a><span class='comment'>-- conversion from Unicode strings (UString) to UTF8 encoded strings.</span>
+<a name="line-149"></a>
+<a name="line-150"></a><a name="unicodeToUtf8"></a><span class='definition'>unicodeToUtf8</span>		<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UTF8String</span>
+<a name="line-151"></a><span class='definition'>unicodeToUtf8</span>		<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>unicodeCharToUtf8</span>
+<a name="line-152"></a>
+<a name="line-153"></a><span class='comment'>-- |</span>
+<a name="line-154"></a><span class='comment'>-- conversion from Unicode (Char) to a UTF8 encoded string.</span>
+<a name="line-155"></a>
+<a name="line-156"></a><a name="unicodeCharToUtf8"></a><span class='definition'>unicodeCharToUtf8</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UTF8String</span>
+<a name="line-157"></a><span class='definition'>unicodeCharToUtf8</span> <span class='varid'>c</span>
+<a name="line-158"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0</span>          <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x0000007F</span>	<span class='comment'>-- 1 byte UTF8 (7 bits)</span>
+<a name="line-159"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='varid'>i</span> <span class='keyglyph'>]</span>
+<a name="line-160"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00000080</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x000007FF</span>	<span class='comment'>-- 2 byte UTF8 (5 + 6 bits)</span>
+<a name="line-161"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xC0</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-162"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span>                  <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-163"></a>	  <span class='keyglyph'>]</span>
+<a name="line-164"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00000800</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x0000FFFF</span>	<span class='comment'>-- 3 byte UTF8 (4 + 6 + 6 bits)</span>
+<a name="line-165"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xE0</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span>   <span class='num'>0x1000</span><span class='layout'>)</span>
+<a name="line-166"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-167"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                 <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-168"></a>	  <span class='keyglyph'>]</span>
+<a name="line-169"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00010000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x001FFFFF</span>	<span class='comment'>-- 4 byte UTF8 (3 + 6 + 6 + 6 bits)</span>
+<a name="line-170"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xF0</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span>    <span class='num'>0x40000</span><span class='layout'>)</span>
+<a name="line-171"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-172"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>       <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-173"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                   <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-174"></a>	  <span class='keyglyph'>]</span>
+<a name="line-175"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00200000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x03FFFFFF</span>	<span class='comment'>-- 5 byte UTF8 (2 + 6 + 6 + 6 + 6 bits)</span>
+<a name="line-176"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xF8</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span>  <span class='num'>0x1000000</span><span class='layout'>)</span>
+<a name="line-177"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>    <span class='num'>0x40000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-178"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-179"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>       <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-180"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                   <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-181"></a>	  <span class='keyglyph'>]</span>
+<a name="line-182"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x04000000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x7FFFFFFF</span>	<span class='comment'>-- 6 byte UTF8 (1 + 6 + 6 + 6 + 6 + 6 bits)</span>
+<a name="line-183"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xFC</span> <span class='varop'>+</span>  <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40000000</span><span class='layout'>)</span>
+<a name="line-184"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>  <span class='num'>0x1000000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-185"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>    <span class='num'>0x40000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-186"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>     <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-187"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span>       <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-188"></a>	  <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span>  <span class='varid'>i</span>                   <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>
+<a name="line-189"></a>	  <span class='keyglyph'>]</span>
+<a name="line-190"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>					<span class='comment'>-- other values not supported</span>
+<a name="line-191"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"unicodeCharToUtf8: illegal integer argument "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-192"></a>    <span class='keyword'>where</span>
+<a name="line-193"></a>    <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>
+<a name="line-194"></a>
+<a name="line-195"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-196"></a>
+<a name="line-197"></a><span class='comment'>-- |</span>
+<a name="line-198"></a><span class='comment'>-- checking for valid XML characters</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="isXmlChar"></a><span class='definition'>isXmlChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-201"></a><span class='definition'>isXmlChar</span> <span class='varid'>c</span>
+<a name="line-202"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-203"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0009'</span><span class='layout'>,</span> <span class='chr'>'\x000A'</span><span class='layout'>)</span>
+<a name="line-204"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x000D'</span><span class='layout'>,</span> <span class='chr'>'\x000D'</span><span class='layout'>)</span>
+<a name="line-205"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0020'</span><span class='layout'>,</span> <span class='chr'>'\xD7FF'</span><span class='layout'>)</span>
+<a name="line-206"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xE000'</span><span class='layout'>,</span> <span class='chr'>'\xFFFD'</span><span class='layout'>)</span>
+<a name="line-207"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10000'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span>
+<a name="line-208"></a>      <span class='keyglyph'>]</span>
+<a name="line-209"></a>
+<a name="line-210"></a><span class='comment'>-- |</span>
+<a name="line-211"></a><span class='comment'>-- checking for XML space character: \\\n, \\\r, \\\t and \" \"</span>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="isXmlSpaceChar"></a><span class='definition'>isXmlSpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-214"></a><span class='definition'>isXmlSpaceChar</span> <span class='varid'>c</span>
+<a name="line-215"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\x20'</span><span class='layout'>,</span> <span class='chr'>'\x09'</span><span class='layout'>,</span> <span class='chr'>'\x0D'</span><span class='layout'>,</span> <span class='chr'>'\x0A'</span><span class='keyglyph'>]</span>
+<a name="line-216"></a>
+<a name="line-217"></a><span class='comment'>-- |</span>
+<a name="line-218"></a><span class='comment'>-- checking for XML1.1 space character: additional space 0x85 and 0x2028</span>
+<a name="line-219"></a><span class='comment'>--</span>
+<a name="line-220"></a><span class='comment'>-- see also : 'isXmlSpaceChar'</span>
+<a name="line-221"></a>
+<a name="line-222"></a><a name="isXml11SpaceChar"></a><span class='definition'>isXml11SpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-223"></a><span class='definition'>isXml11SpaceChar</span> <span class='varid'>c</span>
+<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\x20'</span><span class='layout'>,</span> <span class='chr'>'\x09'</span><span class='layout'>,</span> <span class='chr'>'\x0D'</span><span class='layout'>,</span> <span class='chr'>'\x0A'</span><span class='layout'>,</span> <span class='chr'>'\x85'</span><span class='layout'>,</span> <span class='chr'>'\x2028'</span><span class='keyglyph'>]</span>
+<a name="line-225"></a>
+<a name="line-226"></a><span class='comment'>-- |</span>
+<a name="line-227"></a><span class='comment'>-- checking for XML name character</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="isXmlNameChar"></a><span class='definition'>isXmlNameChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-230"></a><span class='definition'>isXmlNameChar</span> <span class='varid'>c</span>
+<a name="line-231"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>
+<a name="line-232"></a>      <span class='varop'>||</span>
+<a name="line-233"></a>      <span class='varid'>isXmlDigit</span> <span class='varid'>c</span>
+<a name="line-234"></a>      <span class='varop'>||</span>
+<a name="line-235"></a>      <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x2D'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x2E'</span><span class='layout'>)</span>		<span class='comment'>-- '-' | '.'</span>
+<a name="line-236"></a>      <span class='varop'>||</span>
+<a name="line-237"></a>      <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x3A'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x5F'</span><span class='layout'>)</span>		<span class='comment'>-- Letter | ':' | '_'</span>
+<a name="line-238"></a>      <span class='varop'>||</span>
+<a name="line-239"></a>      <span class='varid'>isXmlCombiningChar</span> <span class='varid'>c</span>
+<a name="line-240"></a>      <span class='varop'>||</span>
+<a name="line-241"></a>      <span class='varid'>isXmlExtender</span> <span class='varid'>c</span>
+<a name="line-242"></a>
+<a name="line-243"></a><span class='comment'>-- |</span>
+<a name="line-244"></a><span class='comment'>-- checking for XML name start character</span>
+<a name="line-245"></a><span class='comment'>--</span>
+<a name="line-246"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>
+<a name="line-247"></a>
+<a name="line-248"></a><a name="isXmlNameStartChar"></a><span class='definition'>isXmlNameStartChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-249"></a><span class='definition'>isXmlNameStartChar</span> <span class='varid'>c</span>
+<a name="line-250"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>
+<a name="line-251"></a>      <span class='varop'>||</span>
+<a name="line-252"></a>      <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x3A'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x5F'</span><span class='layout'>)</span>		<span class='comment'>-- Letter | ':' | '_'</span>
+<a name="line-253"></a>
+<a name="line-254"></a><span class='comment'>-- |</span>
+<a name="line-255"></a><span class='comment'>-- checking for XML NCName character: no \":\" allowed</span>
+<a name="line-256"></a><span class='comment'>--</span>
+<a name="line-257"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>
+<a name="line-258"></a>
+<a name="line-259"></a><a name="isXmlNCNameChar"></a><span class='definition'>isXmlNCNameChar</span>			<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-260"></a><span class='definition'>isXmlNCNameChar</span> <span class='varid'>c</span>
+<a name="line-261"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>
+<a name="line-262"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-263"></a>      <span class='varid'>isXmlNameChar</span> <span class='varid'>c</span>
+<a name="line-264"></a>
+<a name="line-265"></a><span class='comment'>-- |</span>
+<a name="line-266"></a><span class='comment'>-- checking for XML NCName start character: no \":\" allowed</span>
+<a name="line-267"></a><span class='comment'>--</span>
+<a name="line-268"></a><span class='comment'>-- see also : 'isXmlNameChar', 'isXmlNCNameChar'</span>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="isXmlNCNameStartChar"></a><span class='definition'>isXmlNCNameStartChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-271"></a><span class='definition'>isXmlNCNameStartChar</span> <span class='varid'>c</span>
+<a name="line-272"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>
+<a name="line-273"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-274"></a>      <span class='varid'>isXmlNameStartChar</span> <span class='varid'>c</span>
+<a name="line-275"></a>
+<a name="line-276"></a><span class='comment'>-- |</span>
+<a name="line-277"></a><span class='comment'>-- checking for XML public id character</span>
+<a name="line-278"></a>
+<a name="line-279"></a><a name="isXmlPubidChar"></a><span class='definition'>isXmlPubidChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-280"></a><span class='definition'>isXmlPubidChar</span> <span class='varid'>c</span>
+<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='layout'>,</span> <span class='chr'>'9'</span><span class='layout'>)</span>
+<a name="line-282"></a>		 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'A'</span><span class='layout'>,</span> <span class='chr'>'Z'</span><span class='layout'>)</span>
+<a name="line-283"></a>		 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'a'</span><span class='layout'>,</span> <span class='chr'>'z'</span><span class='layout'>)</span>
+<a name="line-284"></a>		 <span class='keyglyph'>]</span>
+<a name="line-285"></a>      <span class='varop'>||</span>
+<a name="line-286"></a>      <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>" \r\n-'()+,./:=?;!*#@$_%"</span> <span class='layout'>)</span>
+<a name="line-287"></a>
+<a name="line-288"></a><span class='comment'>-- |</span>
+<a name="line-289"></a><span class='comment'>-- checking for XML letter</span>
+<a name="line-290"></a>
+<a name="line-291"></a><a name="isXmlLetter"></a><span class='definition'>isXmlLetter</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-292"></a><span class='definition'>isXmlLetter</span> <span class='varid'>c</span>
+<a name="line-293"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlBaseChar</span> <span class='varid'>c</span>
+<a name="line-294"></a>      <span class='varop'>||</span>
+<a name="line-295"></a>      <span class='varid'>isXmlIdeographicChar</span> <span class='varid'>c</span>
+<a name="line-296"></a>
+<a name="line-297"></a><span class='comment'>-- |</span>
+<a name="line-298"></a><span class='comment'>-- checking for XML base charater</span>
+<a name="line-299"></a>
+<a name="line-300"></a><a name="isXmlBaseChar"></a><span class='definition'>isXmlBaseChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-301"></a><span class='definition'>isXmlBaseChar</span> <span class='varid'>c</span>
+<a name="line-302"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-303"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0041'</span><span class='layout'>,</span> <span class='chr'>'\x005A'</span><span class='layout'>)</span>
+<a name="line-304"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0061'</span><span class='layout'>,</span> <span class='chr'>'\x007A'</span><span class='layout'>)</span>
+<a name="line-305"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00C0'</span><span class='layout'>,</span> <span class='chr'>'\x00D6'</span><span class='layout'>)</span>
+<a name="line-306"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00D8'</span><span class='layout'>,</span> <span class='chr'>'\x00F6'</span><span class='layout'>)</span>
+<a name="line-307"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00F8'</span><span class='layout'>,</span> <span class='chr'>'\x0131'</span><span class='layout'>)</span>
+<a name="line-308"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0134'</span><span class='layout'>,</span> <span class='chr'>'\x013E'</span><span class='layout'>)</span>
+<a name="line-309"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0141'</span><span class='layout'>,</span> <span class='chr'>'\x0148'</span><span class='layout'>)</span>
+<a name="line-310"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x014A'</span><span class='layout'>,</span> <span class='chr'>'\x017E'</span><span class='layout'>)</span>
+<a name="line-311"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0180'</span><span class='layout'>,</span> <span class='chr'>'\x01C3'</span><span class='layout'>)</span>
+<a name="line-312"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01CD'</span><span class='layout'>,</span> <span class='chr'>'\x01F0'</span><span class='layout'>)</span>
+<a name="line-313"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01F4'</span><span class='layout'>,</span> <span class='chr'>'\x01F5'</span><span class='layout'>)</span>
+<a name="line-314"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01FA'</span><span class='layout'>,</span> <span class='chr'>'\x0217'</span><span class='layout'>)</span>
+<a name="line-315"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0250'</span><span class='layout'>,</span> <span class='chr'>'\x02A8'</span><span class='layout'>)</span>
+<a name="line-316"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02BB'</span><span class='layout'>,</span> <span class='chr'>'\x02C1'</span><span class='layout'>)</span>
+<a name="line-317"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0386'</span><span class='layout'>,</span> <span class='chr'>'\x0386'</span><span class='layout'>)</span>
+<a name="line-318"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0388'</span><span class='layout'>,</span> <span class='chr'>'\x038A'</span><span class='layout'>)</span>
+<a name="line-319"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x038C'</span><span class='layout'>,</span> <span class='chr'>'\x038C'</span><span class='layout'>)</span>
+<a name="line-320"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x038E'</span><span class='layout'>,</span> <span class='chr'>'\x03A1'</span><span class='layout'>)</span>
+<a name="line-321"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03A3'</span><span class='layout'>,</span> <span class='chr'>'\x03CE'</span><span class='layout'>)</span>
+<a name="line-322"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03D0'</span><span class='layout'>,</span> <span class='chr'>'\x03D6'</span><span class='layout'>)</span>
+<a name="line-323"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DA'</span><span class='layout'>,</span> <span class='chr'>'\x03DA'</span><span class='layout'>)</span>
+<a name="line-324"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DC'</span><span class='layout'>,</span> <span class='chr'>'\x03DC'</span><span class='layout'>)</span>
+<a name="line-325"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DE'</span><span class='layout'>,</span> <span class='chr'>'\x03DE'</span><span class='layout'>)</span>
+<a name="line-326"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03E0'</span><span class='layout'>,</span> <span class='chr'>'\x03E0'</span><span class='layout'>)</span>
+<a name="line-327"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03E2'</span><span class='layout'>,</span> <span class='chr'>'\x03F3'</span><span class='layout'>)</span>
+<a name="line-328"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0401'</span><span class='layout'>,</span> <span class='chr'>'\x040C'</span><span class='layout'>)</span>
+<a name="line-329"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x040E'</span><span class='layout'>,</span> <span class='chr'>'\x044F'</span><span class='layout'>)</span>
+<a name="line-330"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0451'</span><span class='layout'>,</span> <span class='chr'>'\x045C'</span><span class='layout'>)</span>
+<a name="line-331"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x045E'</span><span class='layout'>,</span> <span class='chr'>'\x0481'</span><span class='layout'>)</span>
+<a name="line-332"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0490'</span><span class='layout'>,</span> <span class='chr'>'\x04C4'</span><span class='layout'>)</span>
+<a name="line-333"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04C7'</span><span class='layout'>,</span> <span class='chr'>'\x04C8'</span><span class='layout'>)</span>
+<a name="line-334"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04CB'</span><span class='layout'>,</span> <span class='chr'>'\x04CC'</span><span class='layout'>)</span>
+<a name="line-335"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04D0'</span><span class='layout'>,</span> <span class='chr'>'\x04EB'</span><span class='layout'>)</span>
+<a name="line-336"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04EE'</span><span class='layout'>,</span> <span class='chr'>'\x04F5'</span><span class='layout'>)</span>
+<a name="line-337"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04F8'</span><span class='layout'>,</span> <span class='chr'>'\x04F9'</span><span class='layout'>)</span>
+<a name="line-338"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0531'</span><span class='layout'>,</span> <span class='chr'>'\x0556'</span><span class='layout'>)</span>
+<a name="line-339"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0559'</span><span class='layout'>,</span> <span class='chr'>'\x0559'</span><span class='layout'>)</span>
+<a name="line-340"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0561'</span><span class='layout'>,</span> <span class='chr'>'\x0586'</span><span class='layout'>)</span>
+<a name="line-341"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05D0'</span><span class='layout'>,</span> <span class='chr'>'\x05EA'</span><span class='layout'>)</span>
+<a name="line-342"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05F0'</span><span class='layout'>,</span> <span class='chr'>'\x05F2'</span><span class='layout'>)</span>
+<a name="line-343"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0621'</span><span class='layout'>,</span> <span class='chr'>'\x063A'</span><span class='layout'>)</span>
+<a name="line-344"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0641'</span><span class='layout'>,</span> <span class='chr'>'\x064A'</span><span class='layout'>)</span>
+<a name="line-345"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0671'</span><span class='layout'>,</span> <span class='chr'>'\x06B7'</span><span class='layout'>)</span>
+<a name="line-346"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06BA'</span><span class='layout'>,</span> <span class='chr'>'\x06BE'</span><span class='layout'>)</span>
+<a name="line-347"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06C0'</span><span class='layout'>,</span> <span class='chr'>'\x06CE'</span><span class='layout'>)</span>
+<a name="line-348"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D0'</span><span class='layout'>,</span> <span class='chr'>'\x06D3'</span><span class='layout'>)</span>
+<a name="line-349"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D5'</span><span class='layout'>,</span> <span class='chr'>'\x06D5'</span><span class='layout'>)</span>
+<a name="line-350"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E5'</span><span class='layout'>,</span> <span class='chr'>'\x06E6'</span><span class='layout'>)</span>
+<a name="line-351"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0905'</span><span class='layout'>,</span> <span class='chr'>'\x0939'</span><span class='layout'>)</span>
+<a name="line-352"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093D'</span><span class='layout'>,</span> <span class='chr'>'\x093D'</span><span class='layout'>)</span>
+<a name="line-353"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0958'</span><span class='layout'>,</span> <span class='chr'>'\x0961'</span><span class='layout'>)</span>
+<a name="line-354"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0985'</span><span class='layout'>,</span> <span class='chr'>'\x098C'</span><span class='layout'>)</span>
+<a name="line-355"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x098F'</span><span class='layout'>,</span> <span class='chr'>'\x0990'</span><span class='layout'>)</span>
+<a name="line-356"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0993'</span><span class='layout'>,</span> <span class='chr'>'\x09A8'</span><span class='layout'>)</span>
+<a name="line-357"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09AA'</span><span class='layout'>,</span> <span class='chr'>'\x09B0'</span><span class='layout'>)</span>
+<a name="line-358"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09B2'</span><span class='layout'>,</span> <span class='chr'>'\x09B2'</span><span class='layout'>)</span>
+<a name="line-359"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09B6'</span><span class='layout'>,</span> <span class='chr'>'\x09B9'</span><span class='layout'>)</span>
+<a name="line-360"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09DC'</span><span class='layout'>,</span> <span class='chr'>'\x09DD'</span><span class='layout'>)</span>
+<a name="line-361"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09DF'</span><span class='layout'>,</span> <span class='chr'>'\x09E1'</span><span class='layout'>)</span>
+<a name="line-362"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09F0'</span><span class='layout'>,</span> <span class='chr'>'\x09F1'</span><span class='layout'>)</span>
+<a name="line-363"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A05'</span><span class='layout'>,</span> <span class='chr'>'\x0A0A'</span><span class='layout'>)</span>
+<a name="line-364"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A0F'</span><span class='layout'>,</span> <span class='chr'>'\x0A10'</span><span class='layout'>)</span>
+<a name="line-365"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A13'</span><span class='layout'>,</span> <span class='chr'>'\x0A28'</span><span class='layout'>)</span>
+<a name="line-366"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A2A'</span><span class='layout'>,</span> <span class='chr'>'\x0A30'</span><span class='layout'>)</span>
+<a name="line-367"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A32'</span><span class='layout'>,</span> <span class='chr'>'\x0A33'</span><span class='layout'>)</span>
+<a name="line-368"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A35'</span><span class='layout'>,</span> <span class='chr'>'\x0A36'</span><span class='layout'>)</span>
+<a name="line-369"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A38'</span><span class='layout'>,</span> <span class='chr'>'\x0A39'</span><span class='layout'>)</span>
+<a name="line-370"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A59'</span><span class='layout'>,</span> <span class='chr'>'\x0A5C'</span><span class='layout'>)</span>
+<a name="line-371"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A5E'</span><span class='layout'>,</span> <span class='chr'>'\x0A5E'</span><span class='layout'>)</span>
+<a name="line-372"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A72'</span><span class='layout'>,</span> <span class='chr'>'\x0A74'</span><span class='layout'>)</span>
+<a name="line-373"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A85'</span><span class='layout'>,</span> <span class='chr'>'\x0A8B'</span><span class='layout'>)</span>
+<a name="line-374"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A8D'</span><span class='layout'>,</span> <span class='chr'>'\x0A8D'</span><span class='layout'>)</span>
+<a name="line-375"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A8F'</span><span class='layout'>,</span> <span class='chr'>'\x0A91'</span><span class='layout'>)</span>
+<a name="line-376"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A93'</span><span class='layout'>,</span> <span class='chr'>'\x0AA8'</span><span class='layout'>)</span>
+<a name="line-377"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AAA'</span><span class='layout'>,</span> <span class='chr'>'\x0AB0'</span><span class='layout'>)</span>
+<a name="line-378"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AB2'</span><span class='layout'>,</span> <span class='chr'>'\x0AB3'</span><span class='layout'>)</span>
+<a name="line-379"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AB5'</span><span class='layout'>,</span> <span class='chr'>'\x0AB9'</span><span class='layout'>)</span>
+<a name="line-380"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABD'</span><span class='layout'>,</span> <span class='chr'>'\x0ABD'</span><span class='layout'>)</span>
+<a name="line-381"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AE0'</span><span class='layout'>,</span> <span class='chr'>'\x0AE0'</span><span class='layout'>)</span>
+<a name="line-382"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B05'</span><span class='layout'>,</span> <span class='chr'>'\x0B0C'</span><span class='layout'>)</span>
+<a name="line-383"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B0F'</span><span class='layout'>,</span> <span class='chr'>'\x0B10'</span><span class='layout'>)</span>
+<a name="line-384"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B13'</span><span class='layout'>,</span> <span class='chr'>'\x0B28'</span><span class='layout'>)</span>
+<a name="line-385"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B2A'</span><span class='layout'>,</span> <span class='chr'>'\x0B30'</span><span class='layout'>)</span>
+<a name="line-386"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B32'</span><span class='layout'>,</span> <span class='chr'>'\x0B33'</span><span class='layout'>)</span>
+<a name="line-387"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B36'</span><span class='layout'>,</span> <span class='chr'>'\x0B39'</span><span class='layout'>)</span>
+<a name="line-388"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3D'</span><span class='layout'>,</span> <span class='chr'>'\x0B3D'</span><span class='layout'>)</span>
+<a name="line-389"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B5C'</span><span class='layout'>,</span> <span class='chr'>'\x0B5D'</span><span class='layout'>)</span>
+<a name="line-390"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B5F'</span><span class='layout'>,</span> <span class='chr'>'\x0B61'</span><span class='layout'>)</span>
+<a name="line-391"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B85'</span><span class='layout'>,</span> <span class='chr'>'\x0B8A'</span><span class='layout'>)</span>
+<a name="line-392"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B8E'</span><span class='layout'>,</span> <span class='chr'>'\x0B90'</span><span class='layout'>)</span>
+<a name="line-393"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B92'</span><span class='layout'>,</span> <span class='chr'>'\x0B95'</span><span class='layout'>)</span>
+<a name="line-394"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B99'</span><span class='layout'>,</span> <span class='chr'>'\x0B9A'</span><span class='layout'>)</span>
+<a name="line-395"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B9C'</span><span class='layout'>,</span> <span class='chr'>'\x0B9C'</span><span class='layout'>)</span>
+<a name="line-396"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B9E'</span><span class='layout'>,</span> <span class='chr'>'\x0B9F'</span><span class='layout'>)</span>
+<a name="line-397"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BA3'</span><span class='layout'>,</span> <span class='chr'>'\x0BA4'</span><span class='layout'>)</span>
+<a name="line-398"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BA8'</span><span class='layout'>,</span> <span class='chr'>'\x0BAA'</span><span class='layout'>)</span>
+<a name="line-399"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BAE'</span><span class='layout'>,</span> <span class='chr'>'\x0BB5'</span><span class='layout'>)</span>
+<a name="line-400"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BB7'</span><span class='layout'>,</span> <span class='chr'>'\x0BB9'</span><span class='layout'>)</span>
+<a name="line-401"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C05'</span><span class='layout'>,</span> <span class='chr'>'\x0C0C'</span><span class='layout'>)</span>
+<a name="line-402"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C0E'</span><span class='layout'>,</span> <span class='chr'>'\x0C10'</span><span class='layout'>)</span>
+<a name="line-403"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C12'</span><span class='layout'>,</span> <span class='chr'>'\x0C28'</span><span class='layout'>)</span>
+<a name="line-404"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C2A'</span><span class='layout'>,</span> <span class='chr'>'\x0C33'</span><span class='layout'>)</span>
+<a name="line-405"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C35'</span><span class='layout'>,</span> <span class='chr'>'\x0C39'</span><span class='layout'>)</span>
+<a name="line-406"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C60'</span><span class='layout'>,</span> <span class='chr'>'\x0C61'</span><span class='layout'>)</span>
+<a name="line-407"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C85'</span><span class='layout'>,</span> <span class='chr'>'\x0C8C'</span><span class='layout'>)</span>
+<a name="line-408"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C8E'</span><span class='layout'>,</span> <span class='chr'>'\x0C90'</span><span class='layout'>)</span>
+<a name="line-409"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C92'</span><span class='layout'>,</span> <span class='chr'>'\x0CA8'</span><span class='layout'>)</span>
+<a name="line-410"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CAA'</span><span class='layout'>,</span> <span class='chr'>'\x0CB3'</span><span class='layout'>)</span>
+<a name="line-411"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CB5'</span><span class='layout'>,</span> <span class='chr'>'\x0CB9'</span><span class='layout'>)</span>
+<a name="line-412"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CDE'</span><span class='layout'>,</span> <span class='chr'>'\x0CDE'</span><span class='layout'>)</span>
+<a name="line-413"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CE0'</span><span class='layout'>,</span> <span class='chr'>'\x0CE1'</span><span class='layout'>)</span>
+<a name="line-414"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D05'</span><span class='layout'>,</span> <span class='chr'>'\x0D0C'</span><span class='layout'>)</span>
+<a name="line-415"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D0E'</span><span class='layout'>,</span> <span class='chr'>'\x0D10'</span><span class='layout'>)</span>
+<a name="line-416"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D12'</span><span class='layout'>,</span> <span class='chr'>'\x0D28'</span><span class='layout'>)</span>
+<a name="line-417"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D2A'</span><span class='layout'>,</span> <span class='chr'>'\x0D39'</span><span class='layout'>)</span>
+<a name="line-418"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D60'</span><span class='layout'>,</span> <span class='chr'>'\x0D61'</span><span class='layout'>)</span>
+<a name="line-419"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E01'</span><span class='layout'>,</span> <span class='chr'>'\x0E2E'</span><span class='layout'>)</span>
+<a name="line-420"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E30'</span><span class='layout'>,</span> <span class='chr'>'\x0E30'</span><span class='layout'>)</span>
+<a name="line-421"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E32'</span><span class='layout'>,</span> <span class='chr'>'\x0E33'</span><span class='layout'>)</span>
+<a name="line-422"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E40'</span><span class='layout'>,</span> <span class='chr'>'\x0E45'</span><span class='layout'>)</span>
+<a name="line-423"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E81'</span><span class='layout'>,</span> <span class='chr'>'\x0E82'</span><span class='layout'>)</span>
+<a name="line-424"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E84'</span><span class='layout'>,</span> <span class='chr'>'\x0E84'</span><span class='layout'>)</span>
+<a name="line-425"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E87'</span><span class='layout'>,</span> <span class='chr'>'\x0E88'</span><span class='layout'>)</span>
+<a name="line-426"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E8A'</span><span class='layout'>,</span> <span class='chr'>'\x0E8A'</span><span class='layout'>)</span>
+<a name="line-427"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E8D'</span><span class='layout'>,</span> <span class='chr'>'\x0E8D'</span><span class='layout'>)</span>
+<a name="line-428"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E94'</span><span class='layout'>,</span> <span class='chr'>'\x0E97'</span><span class='layout'>)</span>
+<a name="line-429"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E99'</span><span class='layout'>,</span> <span class='chr'>'\x0E9F'</span><span class='layout'>)</span>
+<a name="line-430"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA1'</span><span class='layout'>,</span> <span class='chr'>'\x0EA3'</span><span class='layout'>)</span>
+<a name="line-431"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA5'</span><span class='layout'>,</span> <span class='chr'>'\x0EA5'</span><span class='layout'>)</span>
+<a name="line-432"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA7'</span><span class='layout'>,</span> <span class='chr'>'\x0EA7'</span><span class='layout'>)</span>
+<a name="line-433"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EAA'</span><span class='layout'>,</span> <span class='chr'>'\x0EAB'</span><span class='layout'>)</span>
+<a name="line-434"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EAD'</span><span class='layout'>,</span> <span class='chr'>'\x0EAE'</span><span class='layout'>)</span>
+<a name="line-435"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB0'</span><span class='layout'>,</span> <span class='chr'>'\x0EB0'</span><span class='layout'>)</span>
+<a name="line-436"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB2'</span><span class='layout'>,</span> <span class='chr'>'\x0EB3'</span><span class='layout'>)</span>
+<a name="line-437"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EBD'</span><span class='layout'>,</span> <span class='chr'>'\x0EBD'</span><span class='layout'>)</span>
+<a name="line-438"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC0'</span><span class='layout'>,</span> <span class='chr'>'\x0EC4'</span><span class='layout'>)</span>
+<a name="line-439"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F40'</span><span class='layout'>,</span> <span class='chr'>'\x0F47'</span><span class='layout'>)</span>
+<a name="line-440"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F49'</span><span class='layout'>,</span> <span class='chr'>'\x0F69'</span><span class='layout'>)</span>
+<a name="line-441"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10A0'</span><span class='layout'>,</span> <span class='chr'>'\x10C5'</span><span class='layout'>)</span>
+<a name="line-442"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10D0'</span><span class='layout'>,</span> <span class='chr'>'\x10F6'</span><span class='layout'>)</span>
+<a name="line-443"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1100'</span><span class='layout'>,</span> <span class='chr'>'\x1100'</span><span class='layout'>)</span>
+<a name="line-444"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1102'</span><span class='layout'>,</span> <span class='chr'>'\x1103'</span><span class='layout'>)</span>
+<a name="line-445"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1105'</span><span class='layout'>,</span> <span class='chr'>'\x1107'</span><span class='layout'>)</span>
+<a name="line-446"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1109'</span><span class='layout'>,</span> <span class='chr'>'\x1109'</span><span class='layout'>)</span>
+<a name="line-447"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x110B'</span><span class='layout'>,</span> <span class='chr'>'\x110C'</span><span class='layout'>)</span>
+<a name="line-448"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x110E'</span><span class='layout'>,</span> <span class='chr'>'\x1112'</span><span class='layout'>)</span>
+<a name="line-449"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x113C'</span><span class='layout'>,</span> <span class='chr'>'\x113C'</span><span class='layout'>)</span>
+<a name="line-450"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x113E'</span><span class='layout'>,</span> <span class='chr'>'\x113E'</span><span class='layout'>)</span>
+<a name="line-451"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1140'</span><span class='layout'>,</span> <span class='chr'>'\x1140'</span><span class='layout'>)</span>
+<a name="line-452"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x114C'</span><span class='layout'>,</span> <span class='chr'>'\x114C'</span><span class='layout'>)</span>
+<a name="line-453"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x114E'</span><span class='layout'>,</span> <span class='chr'>'\x114E'</span><span class='layout'>)</span>
+<a name="line-454"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1150'</span><span class='layout'>,</span> <span class='chr'>'\x1150'</span><span class='layout'>)</span>
+<a name="line-455"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1154'</span><span class='layout'>,</span> <span class='chr'>'\x1155'</span><span class='layout'>)</span>
+<a name="line-456"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1159'</span><span class='layout'>,</span> <span class='chr'>'\x1159'</span><span class='layout'>)</span>
+<a name="line-457"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x115F'</span><span class='layout'>,</span> <span class='chr'>'\x1161'</span><span class='layout'>)</span>
+<a name="line-458"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1163'</span><span class='layout'>,</span> <span class='chr'>'\x1163'</span><span class='layout'>)</span>
+<a name="line-459"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1165'</span><span class='layout'>,</span> <span class='chr'>'\x1165'</span><span class='layout'>)</span>
+<a name="line-460"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1167'</span><span class='layout'>,</span> <span class='chr'>'\x1167'</span><span class='layout'>)</span>
+<a name="line-461"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1169'</span><span class='layout'>,</span> <span class='chr'>'\x1169'</span><span class='layout'>)</span>
+<a name="line-462"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x116D'</span><span class='layout'>,</span> <span class='chr'>'\x116E'</span><span class='layout'>)</span>
+<a name="line-463"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1172'</span><span class='layout'>,</span> <span class='chr'>'\x1173'</span><span class='layout'>)</span>
+<a name="line-464"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1175'</span><span class='layout'>,</span> <span class='chr'>'\x1175'</span><span class='layout'>)</span>
+<a name="line-465"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x119E'</span><span class='layout'>,</span> <span class='chr'>'\x119E'</span><span class='layout'>)</span>
+<a name="line-466"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11A8'</span><span class='layout'>,</span> <span class='chr'>'\x11A8'</span><span class='layout'>)</span>
+<a name="line-467"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11AB'</span><span class='layout'>,</span> <span class='chr'>'\x11AB'</span><span class='layout'>)</span>
+<a name="line-468"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11AE'</span><span class='layout'>,</span> <span class='chr'>'\x11AF'</span><span class='layout'>)</span>
+<a name="line-469"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11B7'</span><span class='layout'>,</span> <span class='chr'>'\x11B8'</span><span class='layout'>)</span>
+<a name="line-470"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11BA'</span><span class='layout'>,</span> <span class='chr'>'\x11BA'</span><span class='layout'>)</span>
+<a name="line-471"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11BC'</span><span class='layout'>,</span> <span class='chr'>'\x11C2'</span><span class='layout'>)</span>
+<a name="line-472"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11EB'</span><span class='layout'>,</span> <span class='chr'>'\x11EB'</span><span class='layout'>)</span>
+<a name="line-473"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11F0'</span><span class='layout'>,</span> <span class='chr'>'\x11F0'</span><span class='layout'>)</span>
+<a name="line-474"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11F9'</span><span class='layout'>,</span> <span class='chr'>'\x11F9'</span><span class='layout'>)</span>
+<a name="line-475"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1E00'</span><span class='layout'>,</span> <span class='chr'>'\x1E9B'</span><span class='layout'>)</span>
+<a name="line-476"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1EA0'</span><span class='layout'>,</span> <span class='chr'>'\x1EF9'</span><span class='layout'>)</span>
+<a name="line-477"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F00'</span><span class='layout'>,</span> <span class='chr'>'\x1F15'</span><span class='layout'>)</span>
+<a name="line-478"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F18'</span><span class='layout'>,</span> <span class='chr'>'\x1F1D'</span><span class='layout'>)</span>
+<a name="line-479"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F20'</span><span class='layout'>,</span> <span class='chr'>'\x1F45'</span><span class='layout'>)</span>
+<a name="line-480"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F48'</span><span class='layout'>,</span> <span class='chr'>'\x1F4D'</span><span class='layout'>)</span>
+<a name="line-481"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F50'</span><span class='layout'>,</span> <span class='chr'>'\x1F57'</span><span class='layout'>)</span>
+<a name="line-482"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F59'</span><span class='layout'>,</span> <span class='chr'>'\x1F59'</span><span class='layout'>)</span>
+<a name="line-483"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5B'</span><span class='layout'>,</span> <span class='chr'>'\x1F5B'</span><span class='layout'>)</span>
+<a name="line-484"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5D'</span><span class='layout'>,</span> <span class='chr'>'\x1F5D'</span><span class='layout'>)</span>
+<a name="line-485"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5F'</span><span class='layout'>,</span> <span class='chr'>'\x1F7D'</span><span class='layout'>)</span>
+<a name="line-486"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F80'</span><span class='layout'>,</span> <span class='chr'>'\x1FB4'</span><span class='layout'>)</span>
+<a name="line-487"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FB6'</span><span class='layout'>,</span> <span class='chr'>'\x1FBC'</span><span class='layout'>)</span>
+<a name="line-488"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FBE'</span><span class='layout'>,</span> <span class='chr'>'\x1FBE'</span><span class='layout'>)</span>
+<a name="line-489"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FC2'</span><span class='layout'>,</span> <span class='chr'>'\x1FC4'</span><span class='layout'>)</span>
+<a name="line-490"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FC6'</span><span class='layout'>,</span> <span class='chr'>'\x1FCC'</span><span class='layout'>)</span>
+<a name="line-491"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FD0'</span><span class='layout'>,</span> <span class='chr'>'\x1FD3'</span><span class='layout'>)</span>
+<a name="line-492"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FD6'</span><span class='layout'>,</span> <span class='chr'>'\x1FDB'</span><span class='layout'>)</span>
+<a name="line-493"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FE0'</span><span class='layout'>,</span> <span class='chr'>'\x1FEC'</span><span class='layout'>)</span>
+<a name="line-494"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FF2'</span><span class='layout'>,</span> <span class='chr'>'\x1FF4'</span><span class='layout'>)</span>
+<a name="line-495"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FF6'</span><span class='layout'>,</span> <span class='chr'>'\x1FFC'</span><span class='layout'>)</span>
+<a name="line-496"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2126'</span><span class='layout'>,</span> <span class='chr'>'\x2126'</span><span class='layout'>)</span>
+<a name="line-497"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x212A'</span><span class='layout'>,</span> <span class='chr'>'\x212B'</span><span class='layout'>)</span>
+<a name="line-498"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x212E'</span><span class='layout'>,</span> <span class='chr'>'\x212E'</span><span class='layout'>)</span>
+<a name="line-499"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2180'</span><span class='layout'>,</span> <span class='chr'>'\x2182'</span><span class='layout'>)</span>
+<a name="line-500"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3041'</span><span class='layout'>,</span> <span class='chr'>'\x3094'</span><span class='layout'>)</span>
+<a name="line-501"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x30A1'</span><span class='layout'>,</span> <span class='chr'>'\x30FA'</span><span class='layout'>)</span>
+<a name="line-502"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3105'</span><span class='layout'>,</span> <span class='chr'>'\x312C'</span><span class='layout'>)</span>
+<a name="line-503"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xAC00'</span><span class='layout'>,</span> <span class='chr'>'\xD7A3'</span><span class='layout'>)</span>
+<a name="line-504"></a>      <span class='keyglyph'>]</span>
+<a name="line-505"></a>
+<a name="line-506"></a><span class='comment'>-- |</span>
+<a name="line-507"></a><span class='comment'>-- checking for XML ideographic charater</span>
+<a name="line-508"></a>
+<a name="line-509"></a><a name="isXmlIdeographicChar"></a><span class='definition'>isXmlIdeographicChar</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-510"></a><span class='definition'>isXmlIdeographicChar</span> <span class='varid'>c</span>
+<a name="line-511"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-512"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x3007'</span><span class='layout'>,</span> <span class='chr'>'\x3007'</span><span class='layout'>)</span>
+<a name="line-513"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3021'</span><span class='layout'>,</span> <span class='chr'>'\x3029'</span><span class='layout'>)</span>
+<a name="line-514"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x4E00'</span><span class='layout'>,</span> <span class='chr'>'\x9FA5'</span><span class='layout'>)</span>
+<a name="line-515"></a>      <span class='keyglyph'>]</span>
+<a name="line-516"></a>
+<a name="line-517"></a><span class='comment'>-- |</span>
+<a name="line-518"></a><span class='comment'>-- checking for XML combining charater</span>
+<a name="line-519"></a>
+<a name="line-520"></a><a name="isXmlCombiningChar"></a><span class='definition'>isXmlCombiningChar</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-521"></a><span class='definition'>isXmlCombiningChar</span> <span class='varid'>c</span>
+<a name="line-522"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-523"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0300'</span><span class='layout'>,</span> <span class='chr'>'\x0345'</span><span class='layout'>)</span>
+<a name="line-524"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0360'</span><span class='layout'>,</span> <span class='chr'>'\x0361'</span><span class='layout'>)</span>
+<a name="line-525"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0483'</span><span class='layout'>,</span> <span class='chr'>'\x0486'</span><span class='layout'>)</span>
+<a name="line-526"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0591'</span><span class='layout'>,</span> <span class='chr'>'\x05A1'</span><span class='layout'>)</span>
+<a name="line-527"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05A3'</span><span class='layout'>,</span> <span class='chr'>'\x05B9'</span><span class='layout'>)</span>
+<a name="line-528"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05BB'</span><span class='layout'>,</span> <span class='chr'>'\x05BD'</span><span class='layout'>)</span>
+<a name="line-529"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05BF'</span><span class='layout'>,</span> <span class='chr'>'\x05BF'</span><span class='layout'>)</span>
+<a name="line-530"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05C1'</span><span class='layout'>,</span> <span class='chr'>'\x05C2'</span><span class='layout'>)</span>
+<a name="line-531"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05C4'</span><span class='layout'>,</span> <span class='chr'>'\x05C4'</span><span class='layout'>)</span>
+<a name="line-532"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x064B'</span><span class='layout'>,</span> <span class='chr'>'\x0652'</span><span class='layout'>)</span>
+<a name="line-533"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0670'</span><span class='layout'>,</span> <span class='chr'>'\x0670'</span><span class='layout'>)</span>
+<a name="line-534"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D6'</span><span class='layout'>,</span> <span class='chr'>'\x06DC'</span><span class='layout'>)</span>
+<a name="line-535"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06DD'</span><span class='layout'>,</span> <span class='chr'>'\x06DF'</span><span class='layout'>)</span>
+<a name="line-536"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E0'</span><span class='layout'>,</span> <span class='chr'>'\x06E4'</span><span class='layout'>)</span>
+<a name="line-537"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E7'</span><span class='layout'>,</span> <span class='chr'>'\x06E8'</span><span class='layout'>)</span>
+<a name="line-538"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06EA'</span><span class='layout'>,</span> <span class='chr'>'\x06ED'</span><span class='layout'>)</span>
+<a name="line-539"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0901'</span><span class='layout'>,</span> <span class='chr'>'\x0903'</span><span class='layout'>)</span>
+<a name="line-540"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093C'</span><span class='layout'>,</span> <span class='chr'>'\x093C'</span><span class='layout'>)</span>
+<a name="line-541"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093E'</span><span class='layout'>,</span> <span class='chr'>'\x094C'</span><span class='layout'>)</span>
+<a name="line-542"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x094D'</span><span class='layout'>,</span> <span class='chr'>'\x094D'</span><span class='layout'>)</span>
+<a name="line-543"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0951'</span><span class='layout'>,</span> <span class='chr'>'\x0954'</span><span class='layout'>)</span>
+<a name="line-544"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0962'</span><span class='layout'>,</span> <span class='chr'>'\x0963'</span><span class='layout'>)</span>
+<a name="line-545"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0981'</span><span class='layout'>,</span> <span class='chr'>'\x0983'</span><span class='layout'>)</span>
+<a name="line-546"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BC'</span><span class='layout'>,</span> <span class='chr'>'\x09BC'</span><span class='layout'>)</span>
+<a name="line-547"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BE'</span><span class='layout'>,</span> <span class='chr'>'\x09BE'</span><span class='layout'>)</span>
+<a name="line-548"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BF'</span><span class='layout'>,</span> <span class='chr'>'\x09BF'</span><span class='layout'>)</span>
+<a name="line-549"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09C0'</span><span class='layout'>,</span> <span class='chr'>'\x09C4'</span><span class='layout'>)</span>
+<a name="line-550"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09C7'</span><span class='layout'>,</span> <span class='chr'>'\x09C8'</span><span class='layout'>)</span>
+<a name="line-551"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09CB'</span><span class='layout'>,</span> <span class='chr'>'\x09CD'</span><span class='layout'>)</span>
+<a name="line-552"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09D7'</span><span class='layout'>,</span> <span class='chr'>'\x09D7'</span><span class='layout'>)</span>
+<a name="line-553"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09E2'</span><span class='layout'>,</span> <span class='chr'>'\x09E3'</span><span class='layout'>)</span>
+<a name="line-554"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A02'</span><span class='layout'>,</span> <span class='chr'>'\x0A02'</span><span class='layout'>)</span>
+<a name="line-555"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3C'</span><span class='layout'>,</span> <span class='chr'>'\x0A3C'</span><span class='layout'>)</span>
+<a name="line-556"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3E'</span><span class='layout'>,</span> <span class='chr'>'\x0A3E'</span><span class='layout'>)</span>
+<a name="line-557"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3F'</span><span class='layout'>,</span> <span class='chr'>'\x0A3F'</span><span class='layout'>)</span>
+<a name="line-558"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A40'</span><span class='layout'>,</span> <span class='chr'>'\x0A42'</span><span class='layout'>)</span>
+<a name="line-559"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A47'</span><span class='layout'>,</span> <span class='chr'>'\x0A48'</span><span class='layout'>)</span>
+<a name="line-560"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A4B'</span><span class='layout'>,</span> <span class='chr'>'\x0A4D'</span><span class='layout'>)</span>
+<a name="line-561"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A70'</span><span class='layout'>,</span> <span class='chr'>'\x0A71'</span><span class='layout'>)</span>
+<a name="line-562"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A81'</span><span class='layout'>,</span> <span class='chr'>'\x0A83'</span><span class='layout'>)</span>
+<a name="line-563"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABC'</span><span class='layout'>,</span> <span class='chr'>'\x0ABC'</span><span class='layout'>)</span>
+<a name="line-564"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABE'</span><span class='layout'>,</span> <span class='chr'>'\x0AC5'</span><span class='layout'>)</span>
+<a name="line-565"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AC7'</span><span class='layout'>,</span> <span class='chr'>'\x0AC9'</span><span class='layout'>)</span>
+<a name="line-566"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ACB'</span><span class='layout'>,</span> <span class='chr'>'\x0ACD'</span><span class='layout'>)</span>
+<a name="line-567"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B01'</span><span class='layout'>,</span> <span class='chr'>'\x0B03'</span><span class='layout'>)</span>
+<a name="line-568"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3C'</span><span class='layout'>,</span> <span class='chr'>'\x0B3C'</span><span class='layout'>)</span>
+<a name="line-569"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3E'</span><span class='layout'>,</span> <span class='chr'>'\x0B43'</span><span class='layout'>)</span>
+<a name="line-570"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B47'</span><span class='layout'>,</span> <span class='chr'>'\x0B48'</span><span class='layout'>)</span>
+<a name="line-571"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B4B'</span><span class='layout'>,</span> <span class='chr'>'\x0B4D'</span><span class='layout'>)</span>
+<a name="line-572"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B56'</span><span class='layout'>,</span> <span class='chr'>'\x0B57'</span><span class='layout'>)</span>
+<a name="line-573"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B82'</span><span class='layout'>,</span> <span class='chr'>'\x0B83'</span><span class='layout'>)</span>
+<a name="line-574"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BBE'</span><span class='layout'>,</span> <span class='chr'>'\x0BC2'</span><span class='layout'>)</span>
+<a name="line-575"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BC6'</span><span class='layout'>,</span> <span class='chr'>'\x0BC8'</span><span class='layout'>)</span>
+<a name="line-576"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BCA'</span><span class='layout'>,</span> <span class='chr'>'\x0BCD'</span><span class='layout'>)</span>
+<a name="line-577"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BD7'</span><span class='layout'>,</span> <span class='chr'>'\x0BD7'</span><span class='layout'>)</span>
+<a name="line-578"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C01'</span><span class='layout'>,</span> <span class='chr'>'\x0C03'</span><span class='layout'>)</span>
+<a name="line-579"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C3E'</span><span class='layout'>,</span> <span class='chr'>'\x0C44'</span><span class='layout'>)</span>
+<a name="line-580"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C46'</span><span class='layout'>,</span> <span class='chr'>'\x0C48'</span><span class='layout'>)</span>
+<a name="line-581"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C4A'</span><span class='layout'>,</span> <span class='chr'>'\x0C4D'</span><span class='layout'>)</span>
+<a name="line-582"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C55'</span><span class='layout'>,</span> <span class='chr'>'\x0C56'</span><span class='layout'>)</span>
+<a name="line-583"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C82'</span><span class='layout'>,</span> <span class='chr'>'\x0C83'</span><span class='layout'>)</span>
+<a name="line-584"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CBE'</span><span class='layout'>,</span> <span class='chr'>'\x0CC4'</span><span class='layout'>)</span>
+<a name="line-585"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CC6'</span><span class='layout'>,</span> <span class='chr'>'\x0CC8'</span><span class='layout'>)</span>
+<a name="line-586"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CCA'</span><span class='layout'>,</span> <span class='chr'>'\x0CCD'</span><span class='layout'>)</span>
+<a name="line-587"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CD5'</span><span class='layout'>,</span> <span class='chr'>'\x0CD6'</span><span class='layout'>)</span>
+<a name="line-588"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D02'</span><span class='layout'>,</span> <span class='chr'>'\x0D03'</span><span class='layout'>)</span>
+<a name="line-589"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D3E'</span><span class='layout'>,</span> <span class='chr'>'\x0D43'</span><span class='layout'>)</span>
+<a name="line-590"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D46'</span><span class='layout'>,</span> <span class='chr'>'\x0D48'</span><span class='layout'>)</span>
+<a name="line-591"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D4A'</span><span class='layout'>,</span> <span class='chr'>'\x0D4D'</span><span class='layout'>)</span>
+<a name="line-592"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D57'</span><span class='layout'>,</span> <span class='chr'>'\x0D57'</span><span class='layout'>)</span>
+<a name="line-593"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E31'</span><span class='layout'>,</span> <span class='chr'>'\x0E31'</span><span class='layout'>)</span>
+<a name="line-594"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E34'</span><span class='layout'>,</span> <span class='chr'>'\x0E3A'</span><span class='layout'>)</span>
+<a name="line-595"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E47'</span><span class='layout'>,</span> <span class='chr'>'\x0E4E'</span><span class='layout'>)</span>
+<a name="line-596"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB1'</span><span class='layout'>,</span> <span class='chr'>'\x0EB1'</span><span class='layout'>)</span>
+<a name="line-597"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB4'</span><span class='layout'>,</span> <span class='chr'>'\x0EB9'</span><span class='layout'>)</span>
+<a name="line-598"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EBB'</span><span class='layout'>,</span> <span class='chr'>'\x0EBC'</span><span class='layout'>)</span>
+<a name="line-599"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC8'</span><span class='layout'>,</span> <span class='chr'>'\x0ECD'</span><span class='layout'>)</span>
+<a name="line-600"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F18'</span><span class='layout'>,</span> <span class='chr'>'\x0F19'</span><span class='layout'>)</span>
+<a name="line-601"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F35'</span><span class='layout'>,</span> <span class='chr'>'\x0F35'</span><span class='layout'>)</span>
+<a name="line-602"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F37'</span><span class='layout'>,</span> <span class='chr'>'\x0F37'</span><span class='layout'>)</span>
+<a name="line-603"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F39'</span><span class='layout'>,</span> <span class='chr'>'\x0F39'</span><span class='layout'>)</span>
+<a name="line-604"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F3E'</span><span class='layout'>,</span> <span class='chr'>'\x0F3E'</span><span class='layout'>)</span>
+<a name="line-605"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F3F'</span><span class='layout'>,</span> <span class='chr'>'\x0F3F'</span><span class='layout'>)</span>
+<a name="line-606"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F71'</span><span class='layout'>,</span> <span class='chr'>'\x0F84'</span><span class='layout'>)</span>
+<a name="line-607"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F86'</span><span class='layout'>,</span> <span class='chr'>'\x0F8B'</span><span class='layout'>)</span>
+<a name="line-608"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F90'</span><span class='layout'>,</span> <span class='chr'>'\x0F95'</span><span class='layout'>)</span>
+<a name="line-609"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F97'</span><span class='layout'>,</span> <span class='chr'>'\x0F97'</span><span class='layout'>)</span>
+<a name="line-610"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F99'</span><span class='layout'>,</span> <span class='chr'>'\x0FAD'</span><span class='layout'>)</span>
+<a name="line-611"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0FB1'</span><span class='layout'>,</span> <span class='chr'>'\x0FB7'</span><span class='layout'>)</span>
+<a name="line-612"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0FB9'</span><span class='layout'>,</span> <span class='chr'>'\x0FB9'</span><span class='layout'>)</span>
+<a name="line-613"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x20D0'</span><span class='layout'>,</span> <span class='chr'>'\x20DC'</span><span class='layout'>)</span>
+<a name="line-614"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x20E1'</span><span class='layout'>,</span> <span class='chr'>'\x20E1'</span><span class='layout'>)</span>
+<a name="line-615"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x302A'</span><span class='layout'>,</span> <span class='chr'>'\x302F'</span><span class='layout'>)</span>
+<a name="line-616"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3099'</span><span class='layout'>,</span> <span class='chr'>'\x3099'</span><span class='layout'>)</span>
+<a name="line-617"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x309A'</span><span class='layout'>,</span> <span class='chr'>'\x309A'</span><span class='layout'>)</span>
+<a name="line-618"></a>      <span class='keyglyph'>]</span>
+<a name="line-619"></a>
+<a name="line-620"></a><span class='comment'>-- |</span>
+<a name="line-621"></a><span class='comment'>-- checking for XML digit</span>
+<a name="line-622"></a>
+<a name="line-623"></a><a name="isXmlDigit"></a><span class='definition'>isXmlDigit</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-624"></a><span class='definition'>isXmlDigit</span> <span class='varid'>c</span>
+<a name="line-625"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-626"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0030'</span><span class='layout'>,</span> <span class='chr'>'\x0039'</span><span class='layout'>)</span>
+<a name="line-627"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0660'</span><span class='layout'>,</span> <span class='chr'>'\x0669'</span><span class='layout'>)</span>
+<a name="line-628"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06F0'</span><span class='layout'>,</span> <span class='chr'>'\x06F9'</span><span class='layout'>)</span>
+<a name="line-629"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0966'</span><span class='layout'>,</span> <span class='chr'>'\x096F'</span><span class='layout'>)</span>
+<a name="line-630"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09E6'</span><span class='layout'>,</span> <span class='chr'>'\x09EF'</span><span class='layout'>)</span>
+<a name="line-631"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A66'</span><span class='layout'>,</span> <span class='chr'>'\x0A6F'</span><span class='layout'>)</span>
+<a name="line-632"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AE6'</span><span class='layout'>,</span> <span class='chr'>'\x0AEF'</span><span class='layout'>)</span>
+<a name="line-633"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B66'</span><span class='layout'>,</span> <span class='chr'>'\x0B6F'</span><span class='layout'>)</span>
+<a name="line-634"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BE7'</span><span class='layout'>,</span> <span class='chr'>'\x0BEF'</span><span class='layout'>)</span>
+<a name="line-635"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C66'</span><span class='layout'>,</span> <span class='chr'>'\x0C6F'</span><span class='layout'>)</span>
+<a name="line-636"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CE6'</span><span class='layout'>,</span> <span class='chr'>'\x0CEF'</span><span class='layout'>)</span>
+<a name="line-637"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D66'</span><span class='layout'>,</span> <span class='chr'>'\x0D6F'</span><span class='layout'>)</span>
+<a name="line-638"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E50'</span><span class='layout'>,</span> <span class='chr'>'\x0E59'</span><span class='layout'>)</span>
+<a name="line-639"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ED0'</span><span class='layout'>,</span> <span class='chr'>'\x0ED9'</span><span class='layout'>)</span>
+<a name="line-640"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F20'</span><span class='layout'>,</span> <span class='chr'>'\x0F29'</span><span class='layout'>)</span>
+<a name="line-641"></a>      <span class='keyglyph'>]</span>
+<a name="line-642"></a>
+<a name="line-643"></a><span class='comment'>-- |</span>
+<a name="line-644"></a><span class='comment'>-- checking for XML extender</span>
+<a name="line-645"></a>
+<a name="line-646"></a><a name="isXmlExtender"></a><span class='definition'>isXmlExtender</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-647"></a><span class='definition'>isXmlExtender</span> <span class='varid'>c</span>
+<a name="line-648"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-649"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x00B7'</span><span class='layout'>,</span> <span class='chr'>'\x00B7'</span><span class='layout'>)</span>
+<a name="line-650"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02D0'</span><span class='layout'>,</span> <span class='chr'>'\x02D0'</span><span class='layout'>)</span>
+<a name="line-651"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02D1'</span><span class='layout'>,</span> <span class='chr'>'\x02D1'</span><span class='layout'>)</span>
+<a name="line-652"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0387'</span><span class='layout'>,</span> <span class='chr'>'\x0387'</span><span class='layout'>)</span>
+<a name="line-653"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0640'</span><span class='layout'>,</span> <span class='chr'>'\x0640'</span><span class='layout'>)</span>
+<a name="line-654"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E46'</span><span class='layout'>,</span> <span class='chr'>'\x0E46'</span><span class='layout'>)</span>
+<a name="line-655"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC6'</span><span class='layout'>,</span> <span class='chr'>'\x0EC6'</span><span class='layout'>)</span>
+<a name="line-656"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3005'</span><span class='layout'>,</span> <span class='chr'>'\x3005'</span><span class='layout'>)</span>
+<a name="line-657"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3031'</span><span class='layout'>,</span> <span class='chr'>'\x3035'</span><span class='layout'>)</span>
+<a name="line-658"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x309D'</span><span class='layout'>,</span> <span class='chr'>'\x309E'</span><span class='layout'>)</span>
+<a name="line-659"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x30FC'</span><span class='layout'>,</span> <span class='chr'>'\x30FE'</span><span class='layout'>)</span>
+<a name="line-660"></a>      <span class='keyglyph'>]</span>
+<a name="line-661"></a>
+<a name="line-662"></a><span class='comment'>-- |</span>
+<a name="line-663"></a><span class='comment'>-- checking for XML control or permanently discouraged char</span>
+<a name="line-664"></a><span class='comment'>--</span>
+<a name="line-665"></a><span class='comment'>-- see Errata to XML1.0 (http:\/\/www.w3.org\/XML\/xml-V10-2e-errata) No 46</span>
+<a name="line-666"></a><span class='comment'>--</span>
+<a name="line-667"></a><span class='comment'>-- Document authors are encouraged to avoid "compatibility characters",</span>
+<a name="line-668"></a><span class='comment'>-- as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).</span>
+<a name="line-669"></a><span class='comment'>-- The characters defined in the following ranges are also discouraged.</span>
+<a name="line-670"></a><span class='comment'>-- They are either control characters or permanently undefined Unicode characters:</span>
+<a name="line-671"></a>
+<a name="line-672"></a>
+<a name="line-673"></a><a name="isXmlControlOrPermanentlyUndefined"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-674"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span> <span class='varid'>c</span>
+<a name="line-675"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-676"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x7F'</span><span class='layout'>,</span> <span class='chr'>'\x84'</span><span class='layout'>)</span>
+<a name="line-677"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x86'</span><span class='layout'>,</span> <span class='chr'>'\x9F'</span><span class='layout'>)</span>
+<a name="line-678"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xFDD0'</span><span class='layout'>,</span> <span class='chr'>'\xFDDF'</span><span class='layout'>)</span>
+<a name="line-679"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x1FFFF'</span><span class='layout'>)</span>
+<a name="line-680"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x2FFFF'</span><span class='layout'>)</span>
+<a name="line-681"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x3FFFF'</span><span class='layout'>)</span>
+<a name="line-682"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x4FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x4FFFF'</span><span class='layout'>)</span>
+<a name="line-683"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x5FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x5FFFF'</span><span class='layout'>)</span>
+<a name="line-684"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x6FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x6FFFF'</span><span class='layout'>)</span>
+<a name="line-685"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x7FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x7FFFF'</span><span class='layout'>)</span>
+<a name="line-686"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x8FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x8FFFF'</span><span class='layout'>)</span>
+<a name="line-687"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x9FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x9FFFF'</span><span class='layout'>)</span>
+<a name="line-688"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xAFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xAFFFF'</span><span class='layout'>)</span>
+<a name="line-689"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xBFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xBFFFF'</span><span class='layout'>)</span>
+<a name="line-690"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xCFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xCFFFF'</span><span class='layout'>)</span>
+<a name="line-691"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xDFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xDFFFF'</span><span class='layout'>)</span>
+<a name="line-692"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xEFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xEFFFF'</span><span class='layout'>)</span>
+<a name="line-693"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xFFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xFFFFF'</span><span class='layout'>)</span>
+<a name="line-694"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span>
+<a name="line-695"></a>      <span class='keyglyph'>]</span>
+<a name="line-696"></a>
+<a name="line-697"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-698"></a>
+<a name="line-699"></a><a name="isInList"></a><span class='definition'>isInList</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Unicode</span><span class='layout'>,</span> <span class='conid'>Unicode</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-700"></a><span class='definition'>isInList</span> <span class='varid'>i</span> <span class='keyglyph'>=</span>
+<a name="line-701"></a>   <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>lb</span><span class='layout'>,</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='varid'>lb</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='varid'>ub</span> <span class='varop'>||</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>False</span>
+<a name="line-702"></a>   <span class='comment'>{- The expression (i&gt;=lb &amp;&amp; i&lt;=ub) || b would work more generally,
+<a name="line-703"></a>      but in a sorted list, the above one aborts the computation as early as possible. -}</span>
+<a name="line-704"></a>
+<a name="line-705"></a><span class='comment'>{-
+<a name="line-706"></a>isInList'	:: Unicode -&gt; [(Unicode, Unicode)] -&gt; Bool
+<a name="line-707"></a>isInList' i ((lb, ub) : l)
+<a name="line-708"></a>    | i &lt;  lb	= False
+<a name="line-709"></a>    | i &lt;= ub	= True
+<a name="line-710"></a>    | otherwise = isInList' i l
+<a name="line-711"></a>
+<a name="line-712"></a>isInList' _ []
+<a name="line-713"></a>    = False
+<a name="line-714"></a>
+<a name="line-715"></a>{- works, but is not so fast -}
+<a name="line-716"></a>isInList''	:: Unicode -&gt; [(Unicode, Unicode)] -&gt; Bool
+<a name="line-717"></a>isInList'' i = any (flip isInRange i)
+<a name="line-718"></a>
+<a name="line-719"></a>-- move to an Utility module?
+<a name="line-720"></a>isInRange	:: Ord a =&gt; (a,a) -&gt; a -&gt; Bool
+<a name="line-721"></a>isInRange (l,r) x = l&lt;=x &amp;&amp; x&lt;=r
+<a name="line-722"></a>
+<a name="line-723"></a>propIsInList :: Bool
+<a name="line-724"></a>propIsInList =
+<a name="line-725"></a>   all
+<a name="line-726"></a>     (\c -&gt; let dict = [ ('\x0041', '\x005A'), ('\x0061', '\x007A') ]
+<a name="line-727"></a>                b0 = isInList c dict
+<a name="line-728"></a>                b1 = isInList' c dict
+<a name="line-729"></a>                b2 = isInList'' c dict
+<a name="line-730"></a>            in  b0 == b1 &amp;&amp; b0 == b2)
+<a name="line-731"></a>     ['\x00'..'\x100']
+<a name="line-732"></a>-}</span>
+<a name="line-733"></a>
+<a name="line-734"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-735"></a>
+<a name="line-736"></a><span class='comment'>-- |</span>
+<a name="line-737"></a><span class='comment'>-- code conversion from latin1 to Unicode</span>
+<a name="line-738"></a>
+<a name="line-739"></a><a name="latin1ToUnicode"></a><span class='definition'>latin1ToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-740"></a><span class='definition'>latin1ToUnicode</span>	<span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-741"></a>
+<a name="line-742"></a><a name="latinToUnicode"></a><span class='definition'>latinToUnicode</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-743"></a><span class='definition'>latinToUnicode</span> <span class='varid'>tt</span>
+<a name="line-744"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>charToUni</span>
+<a name="line-745"></a>    <span class='keyword'>where</span>
+<a name="line-746"></a>    <span class='varid'>charToUni</span> <span class='varid'>c</span> <span class='keyglyph'>=</span>
+<a name="line-747"></a>       <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>src</span><span class='layout'>,</span><span class='varid'>dst</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-748"></a>          <span class='keyword'>case</span> <span class='varid'>compare</span> <span class='varid'>c</span> <span class='varid'>src</span> <span class='keyword'>of</span>
+<a name="line-749"></a>             <span class='conid'>EQ</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>dst</span>
+<a name="line-750"></a>             <span class='conid'>LT</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='comment'>{- not found in table -}</span>
+<a name="line-751"></a>             <span class='conid'>GT</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='varid'>tt</span>
+<a name="line-752"></a>
+<a name="line-753"></a><span class='comment'>-- | conversion from ASCII to unicode with check for legal ASCII char set</span>
+<a name="line-754"></a><span class='comment'>--</span>
+<a name="line-755"></a><span class='comment'>-- Structure of decoding function copied from 'Data.Char.UTF8.decode'.</span>
+<a name="line-756"></a>
+<a name="line-757"></a><a name="decodeAscii"></a><span class='definition'>decodeAscii</span>	<span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>
+<a name="line-758"></a><span class='definition'>decodeAscii</span>
+<a name="line-759"></a>    <span class='keyglyph'>=</span> <span class='varid'>swap</span> <span class='varop'>.</span> <span class='varid'>partitionEither</span> <span class='varop'>.</span> <span class='varid'>decodeAsciiEmbedErrors</span>
+<a name="line-760"></a>
+<a name="line-761"></a><a name="decodeAsciiEmbedErrors"></a><span class='definition'>decodeAsciiEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UStringWithErrors</span>
+<a name="line-762"></a><span class='definition'>decodeAsciiEmbedErrors</span> <span class='varid'>str</span>
+<a name="line-763"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>pos</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>isValid</span> <span class='varid'>c</span>
+<a name="line-764"></a>                         <span class='keyword'>then</span> <span class='conid'>Right</span> <span class='varid'>c</span>
+<a name="line-765"></a>                         <span class='keyword'>else</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>toErrStr</span> <span class='varid'>c</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>posStr</span>
+<a name="line-766"></a>    <span class='keyword'>where</span>
+<a name="line-767"></a>    <span class='varid'>posStr</span> <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>str</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>
+<a name="line-768"></a>    <span class='varid'>toErrStr</span> <span class='varid'>errChr</span> <span class='varid'>pos</span>
+<a name="line-769"></a>	<span class='keyglyph'>=</span> <span class='str'>" at input position "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>": none ASCII char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>errChr</span>
+<a name="line-770"></a>    <span class='varid'>isValid</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>&lt;</span> <span class='chr'>'\x80'</span>
+<a name="line-771"></a>
+<a name="line-772"></a><span class='comment'>-- |</span>
+<a name="line-773"></a><span class='comment'>-- UCS-2 big endian to Unicode conversion</span>
+<a name="line-774"></a>
+<a name="line-775"></a><a name="ucs2BigEndianToUnicode"></a><span class='definition'>ucs2BigEndianToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-776"></a>
+<a name="line-777"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='conop'>:</span> <span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>r</span><span class='layout'>)</span>
+<a name="line-778"></a>    <span class='keyglyph'>=</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>b</span> <span class='varop'>*</span> <span class='num'>256</span> <span class='varop'>+</span> <span class='varid'>fromEnum</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>r</span>
+<a name="line-779"></a>
+<a name="line-780"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='conid'>[]</span>
+<a name="line-781"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-782"></a>
+<a name="line-783"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='keyword'>_</span>
+<a name="line-784"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>				<span class='comment'>-- error "illegal UCS-2 byte input sequence with odd length"</span>
+<a name="line-785"></a>					<span class='comment'>-- is ignored (garbage in, garbage out)</span>
+<a name="line-786"></a>
+<a name="line-787"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-788"></a>
+<a name="line-789"></a><span class='comment'>-- |</span>
+<a name="line-790"></a><span class='comment'>-- UCS-2 little endian to Unicode conversion</span>
+<a name="line-791"></a>
+<a name="line-792"></a><a name="ucs2LittleEndianToUnicode"></a><span class='definition'>ucs2LittleEndianToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-793"></a>
+<a name="line-794"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>b</span> <span class='conop'>:</span> <span class='varid'>r</span><span class='layout'>)</span>
+<a name="line-795"></a>    <span class='keyglyph'>=</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>b</span> <span class='varop'>*</span> <span class='num'>256</span> <span class='varop'>+</span> <span class='varid'>fromEnum</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>r</span>
+<a name="line-796"></a>
+<a name="line-797"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='conid'>[]</span>
+<a name="line-798"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-799"></a>
+<a name="line-800"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span>
+<a name="line-801"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>				<span class='comment'>-- error "illegal UCS-2 byte input sequence with odd length"</span>
+<a name="line-802"></a>					<span class='comment'>-- is ignored</span>
+<a name="line-803"></a>
+<a name="line-804"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-805"></a>
+<a name="line-806"></a><span class='comment'>-- |</span>
+<a name="line-807"></a><span class='comment'>-- UCS-2 to UTF-8 conversion with byte order mark analysis</span>
+<a name="line-808"></a>
+<a name="line-809"></a><a name="ucs2ToUnicode"></a><span class='definition'>ucs2ToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-810"></a>
+<a name="line-811"></a><span class='definition'>ucs2ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- 2 byte mark for big endian encoding</span>
+<a name="line-812"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>
+<a name="line-813"></a>
+<a name="line-814"></a><span class='definition'>ucs2ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- 2 byte mark for little endian encoding</span>
+<a name="line-815"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>
+<a name="line-816"></a>
+<a name="line-817"></a><span class='definition'>ucs2ToUnicode</span> <span class='varid'>s</span>
+<a name="line-818"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>		<span class='comment'>-- default: big endian</span>
+<a name="line-819"></a>
+<a name="line-820"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-821"></a>
+<a name="line-822"></a><span class='comment'>-- |</span>
+<a name="line-823"></a><span class='comment'>-- UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1</span>
+<a name="line-824"></a>
+<a name="line-825"></a><a name="utf8ToUnicode"></a><span class='definition'>utf8ToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>
+<a name="line-826"></a>
+<a name="line-827"></a><span class='definition'>utf8ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='comment'>-- remove byte order mark ( XML standard F.1 )</span>
+<a name="line-828"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>
+<a name="line-829"></a>
+<a name="line-830"></a><span class='definition'>utf8ToUnicode</span> <span class='varid'>s</span>
+<a name="line-831"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>
+<a name="line-832"></a>
+<a name="line-833"></a><a name="utf8ToUnicodeEmbedErrors"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>DecodingFctEmbedErrors</span>
+<a name="line-834"></a>
+<a name="line-835"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='comment'>-- remove byte order mark ( XML standard F.1 )</span>
+<a name="line-836"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>
+<a name="line-837"></a>
+<a name="line-838"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='varid'>s</span>
+<a name="line-839"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>
+<a name="line-840"></a>
+<a name="line-841"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-842"></a>
+<a name="line-843"></a><span class='comment'>-- |</span>
+<a name="line-844"></a><span class='comment'>-- UTF-16 big endian to UTF-8 conversion with removal of byte order mark</span>
+<a name="line-845"></a>
+<a name="line-846"></a><a name="utf16beToUnicode"></a><span class='definition'>utf16beToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-847"></a>
+<a name="line-848"></a><span class='definition'>utf16beToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- remove byte order mark</span>
+<a name="line-849"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>
+<a name="line-850"></a>
+<a name="line-851"></a><span class='definition'>utf16beToUnicode</span> <span class='varid'>s</span>
+<a name="line-852"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>
+<a name="line-853"></a>
+<a name="line-854"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-855"></a>
+<a name="line-856"></a><span class='comment'>-- |</span>
+<a name="line-857"></a><span class='comment'>-- UTF-16 little endian to UTF-8 conversion with removal of byte order mark</span>
+<a name="line-858"></a>
+<a name="line-859"></a><a name="utf16leToUnicode"></a><span class='definition'>utf16leToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>
+<a name="line-860"></a>
+<a name="line-861"></a><span class='definition'>utf16leToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>		<span class='comment'>-- remove byte order mark</span>
+<a name="line-862"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>
+<a name="line-863"></a>
+<a name="line-864"></a><span class='definition'>utf16leToUnicode</span> <span class='varid'>s</span>
+<a name="line-865"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>
+<a name="line-866"></a>
+<a name="line-867"></a>
+<a name="line-868"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-869"></a>
+<a name="line-870"></a><span class='comment'>-- |</span>
+<a name="line-871"></a><span class='comment'>-- substitute all Unicode characters, that are not legal 1-byte</span>
+<a name="line-872"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>
+<a name="line-873"></a><span class='comment'>--</span>
+<a name="line-874"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>
+<a name="line-875"></a><span class='comment'>-- attribute values into pure ascii.</span>
+<a name="line-876"></a><span class='comment'>--</span>
+<a name="line-877"></a><span class='comment'>-- see also : 'unicodeToLatin1'</span>
+<a name="line-878"></a>
+<a name="line-879"></a><a name="unicodeToXmlEntity"></a><span class='definition'>unicodeToXmlEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-880"></a><span class='definition'>unicodeToXmlEntity</span>
+<a name="line-881"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>is1ByteXmlChar</span> <span class='layout'>(</span><span class='varid'>intToCharRef</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>
+<a name="line-882"></a>
+<a name="line-883"></a><span class='comment'>-- |</span>
+<a name="line-884"></a><span class='comment'>-- substitute all Unicode characters, that are not legal latin1</span>
+<a name="line-885"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>
+<a name="line-886"></a><span class='comment'>--</span>
+<a name="line-887"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>
+<a name="line-888"></a><span class='comment'>-- attribute values into ISO latin1.</span>
+<a name="line-889"></a><span class='comment'>--</span>
+<a name="line-890"></a><span class='comment'>-- see also : 'unicodeToXmlEntity'</span>
+<a name="line-891"></a>
+<a name="line-892"></a><a name="unicodeToLatin1"></a><span class='definition'>unicodeToLatin1</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-893"></a><span class='definition'>unicodeToLatin1</span>
+<a name="line-894"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>isXmlLatin1Char</span> <span class='layout'>(</span><span class='varid'>intToCharRef</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>
+<a name="line-895"></a>
+<a name="line-896"></a>
+<a name="line-897"></a><a name="escape"></a><span class='comment'>-- |</span>
+<a name="line-898"></a><span class='comment'>-- substitute selected characters</span>
+<a name="line-899"></a><span class='comment'>-- The @check@ function returns 'True' whenever a character needs to substitution</span>
+<a name="line-900"></a><span class='comment'>-- The function @esc@ computes a substitute.</span>
+<a name="line-901"></a><span class='definition'>escape</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-902"></a><span class='definition'>escape</span> <span class='varid'>check</span> <span class='varid'>esc</span> <span class='keyglyph'>=</span>
+<a name="line-903"></a>    <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>uc</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>check</span> <span class='varid'>uc</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>uc</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>esc</span> <span class='varid'>uc</span><span class='layout'>)</span>
+<a name="line-904"></a>
+<a name="line-905"></a><span class='comment'>-- |</span>
+<a name="line-906"></a><span class='comment'>-- removes all non ascii chars, may be used to transform</span>
+<a name="line-907"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>
+<a name="line-908"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>
+<a name="line-909"></a><span class='comment'>--</span>
+<a name="line-910"></a><span class='comment'>-- see also : 'unicodeRemoveNoneLatin1', 'unicodeToXmlEntity'</span>
+<a name="line-911"></a>
+<a name="line-912"></a><a name="unicodeRemoveNoneAscii"></a><span class='definition'>unicodeRemoveNoneAscii</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-913"></a><span class='definition'>unicodeRemoveNoneAscii</span>
+<a name="line-914"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>is1ByteXmlChar</span>
+<a name="line-915"></a>
+<a name="line-916"></a><span class='comment'>-- |</span>
+<a name="line-917"></a><span class='comment'>-- removes all non latin1 chars, may be used to transform</span>
+<a name="line-918"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>
+<a name="line-919"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>
+<a name="line-920"></a><span class='comment'>--</span>
+<a name="line-921"></a><span class='comment'>-- see also : 'unicodeRemoveNoneAscii', 'unicodeToLatin1'</span>
+<a name="line-922"></a>
+<a name="line-923"></a><a name="unicodeRemoveNoneLatin1"></a><span class='definition'>unicodeRemoveNoneLatin1</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-924"></a><span class='definition'>unicodeRemoveNoneLatin1</span>
+<a name="line-925"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isXmlLatin1Char</span>
+<a name="line-926"></a>
+<a name="line-927"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-928"></a>
+<a name="line-929"></a><span class='comment'>-- |</span>
+<a name="line-930"></a><span class='comment'>-- convert an Unicode into a XML character reference.</span>
+<a name="line-931"></a><span class='comment'>--</span>
+<a name="line-932"></a><span class='comment'>-- see also : 'intToCharRefHex'</span>
+<a name="line-933"></a>
+<a name="line-934"></a><a name="intToCharRef"></a><span class='definition'>intToCharRef</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-935"></a><span class='definition'>intToCharRef</span> <span class='varid'>i</span>
+<a name="line-936"></a>    <span class='keyglyph'>=</span> <span class='str'>"&amp;#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>";"</span>
+<a name="line-937"></a>
+<a name="line-938"></a><span class='comment'>-- |</span>
+<a name="line-939"></a><span class='comment'>-- convert an Unicode into a XML hexadecimal character reference.</span>
+<a name="line-940"></a><span class='comment'>--</span>
+<a name="line-941"></a><span class='comment'>-- see also: 'intToCharRef'</span>
+<a name="line-942"></a>
+<a name="line-943"></a><a name="intToCharRefHex"></a><span class='definition'>intToCharRefHex</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-944"></a><span class='definition'>intToCharRefHex</span> <span class='varid'>i</span>
+<a name="line-945"></a>    <span class='keyglyph'>=</span> <span class='str'>"&amp;#x"</span> <span class='varop'>++</span> <span class='varid'>h2</span> <span class='varop'>++</span> <span class='str'>";"</span>
+<a name="line-946"></a>      <span class='keyword'>where</span>
+<a name="line-947"></a>      <span class='varid'>h1</span> <span class='keyglyph'>=</span> <span class='varid'>intToHexString</span> <span class='varid'>i</span>
+<a name="line-948"></a>      <span class='varid'>h2</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>h1</span> <span class='varop'>`mod`</span> <span class='num'>2</span> <span class='varop'>==</span> <span class='num'>1</span>
+<a name="line-949"></a>	   <span class='keyword'>then</span> <span class='chr'>'0'</span><span class='conop'>:</span> <span class='varid'>h1</span>
+<a name="line-950"></a>	   <span class='keyword'>else</span> <span class='varid'>h1</span>
+<a name="line-951"></a>
+<a name="line-952"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-953"></a><span class='comment'>--</span>
+<a name="line-954"></a><span class='comment'>-- | White Space (XML Standard 2.3) and</span>
+<a name="line-955"></a><span class='comment'>-- end of line handling (2.11)</span>
+<a name="line-956"></a><span class='comment'>--</span>
+<a name="line-957"></a><span class='comment'>-- \#x0D and \#x0D\#x0A are mapped to \#x0A</span>
+<a name="line-958"></a>
+<a name="line-959"></a><a name="normalizeNL"></a><span class='definition'>normalizeNL</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-960"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='chr'>'\r'</span> <span class='conop'>:</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>
+<a name="line-961"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='chr'>'\r'</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>
+<a name="line-962"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>c</span>    <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>
+<a name="line-963"></a><span class='definition'>normalizeNL</span> <span class='conid'>[]</span>				<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-964"></a>
+<a name="line-965"></a>
+<a name="line-966"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-967"></a>
+<a name="line-968"></a><span class='comment'>-- |</span>
+<a name="line-969"></a><span class='comment'>-- the table of supported character encoding schemes and the associated</span>
+<a name="line-970"></a><span class='comment'>-- conversion functions into Unicode:q</span>
+<a name="line-971"></a>
+<a name="line-972"></a><span class='comment'>{-
+<a name="line-973"></a>This table could be derived from decodingTableEither,
+<a name="line-974"></a>but this way it is certainly more efficient.
+<a name="line-975"></a>-}</span>
+<a name="line-976"></a>
+<a name="line-977"></a><a name="decodingTable"></a><span class='definition'>decodingTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>DecodingFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-978"></a><span class='definition'>decodingTable</span>
+<a name="line-979"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span>		<span class='varid'>utf8ToUnicode</span>				<span class='layout'>)</span>
+<a name="line-980"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>latin1ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-981"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span>	<span class='varid'>decodeAscii</span>				<span class='layout'>)</span>
+<a name="line-982"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-983"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-984"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16be</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16beToUnicode</span>		<span class='layout'>)</span>
+<a name="line-985"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16le</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16leToUnicode</span>		<span class='layout'>)</span>
+<a name="line-986"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_2</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_2</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-987"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_3</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_3</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-988"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_4</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_4</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-989"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_5</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_5</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-990"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_6</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_6</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-991"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_7</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_7</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-992"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_8</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_8</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-993"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_9</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_9</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-994"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_10</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_10</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-995"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_11</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_11</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-996"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_13</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_13</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-997"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_14</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_14</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-998"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_15</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_15</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-999"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_16</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_16</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1000"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>unicodeString</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>
+<a name="line-1001"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>	<span class='comment'>-- default</span>
+<a name="line-1002"></a>      <span class='keyglyph'>]</span>
+<a name="line-1003"></a>    <span class='keyword'>where</span>
+<a name="line-1004"></a>    <span class='varid'>liftDecFct</span> <span class='varid'>df</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>df</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-1005"></a>
+<a name="line-1006"></a><span class='comment'>-- |</span>
+<a name="line-1007"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>
+<a name="line-1008"></a>
+<a name="line-1009"></a><a name="getDecodingFct"></a><span class='definition'>getDecodingFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFct</span>
+<a name="line-1010"></a><span class='definition'>getDecodingFct</span> <span class='varid'>enc</span>
+<a name="line-1011"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>decodingTable</span>
+<a name="line-1012"></a>
+<a name="line-1013"></a>
+<a name="line-1014"></a><span class='comment'>-- |</span>
+<a name="line-1015"></a><span class='comment'>-- Similar to 'decodingTable' but it embeds errors</span>
+<a name="line-1016"></a><span class='comment'>-- in the string of decoded characters.</span>
+<a name="line-1017"></a>
+<a name="line-1018"></a><a name="decodingTableEmbedErrors"></a><span class='definition'>decodingTableEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-1019"></a><span class='definition'>decodingTableEmbedErrors</span>
+<a name="line-1020"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span>		<span class='varid'>utf8ToUnicodeEmbedErrors</span>		<span class='layout'>)</span>
+<a name="line-1021"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>latin1ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-1022"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span>	<span class='varid'>decodeAsciiEmbedErrors</span>			<span class='layout'>)</span>
+<a name="line-1023"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-1024"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-1025"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16be</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16beToUnicode</span>		<span class='layout'>)</span>
+<a name="line-1026"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16le</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>utf16leToUnicode</span>		<span class='layout'>)</span>
+<a name="line-1027"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_2</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_2</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1028"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_3</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_3</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1029"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_4</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_4</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1030"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_5</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_5</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1031"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_6</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_6</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1032"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_7</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_7</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1033"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_8</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_8</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1034"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_9</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_9</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1035"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_10</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_10</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1036"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_11</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_11</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1037"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_13</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_13</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1038"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_14</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_14</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1039"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_15</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_15</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1040"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_16</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_16</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-1041"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>unicodeString</span><span class='layout'>,</span>	<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>
+<a name="line-1042"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>		<span class='varid'>liftDecFct</span> <span class='varid'>id</span>				<span class='layout'>)</span>	<span class='comment'>-- default</span>
+<a name="line-1043"></a>      <span class='keyglyph'>]</span>
+<a name="line-1044"></a>    <span class='keyword'>where</span>
+<a name="line-1045"></a>    <span class='varid'>liftDecFct</span> <span class='varid'>df</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>df</span>
+<a name="line-1046"></a>
+<a name="line-1047"></a><span class='comment'>-- |</span>
+<a name="line-1048"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>
+<a name="line-1049"></a>
+<a name="line-1050"></a><a name="getDecodingFctEmbedErrors"></a><span class='definition'>getDecodingFctEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFctEmbedErrors</span>
+<a name="line-1051"></a><span class='definition'>getDecodingFctEmbedErrors</span> <span class='varid'>enc</span>
+<a name="line-1052"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>decodingTableEmbedErrors</span>
+<a name="line-1053"></a>
+<a name="line-1054"></a>
+<a name="line-1055"></a>
+<a name="line-1056"></a><span class='comment'>-- |</span>
+<a name="line-1057"></a><span class='comment'>-- the table of supported output encoding schemes and the associated</span>
+<a name="line-1058"></a><span class='comment'>-- conversion functions from Unicode</span>
+<a name="line-1059"></a>
+<a name="line-1060"></a><a name="outputEncodingTable"></a><span class='definition'>outputEncodingTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-1061"></a><span class='definition'>outputEncodingTable</span>
+<a name="line-1062"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span>		<span class='varid'>unicodeToUtf8</span>		<span class='layout'>)</span>
+<a name="line-1063"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span>	<span class='varid'>unicodeToLatin1</span>		<span class='layout'>)</span>
+<a name="line-1064"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span>	<span class='varid'>unicodeToXmlEntity</span>	<span class='layout'>)</span>
+<a name="line-1065"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span>		<span class='varid'>ucs2ToUnicode</span>		<span class='layout'>)</span>
+<a name="line-1066"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>		<span class='varid'>unicodeToUtf8</span>		<span class='layout'>)</span>	<span class='comment'>-- default</span>
+<a name="line-1067"></a>      <span class='keyglyph'>]</span>
+<a name="line-1068"></a>
+<a name="line-1069"></a><span class='comment'>-- |</span>
+<a name="line-1070"></a><span class='comment'>-- the lookup function for selecting the encoding function</span>
+<a name="line-1071"></a>
+<a name="line-1072"></a><a name="getOutputEncodingFct"></a><span class='definition'>getOutputEncodingFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span><span class='layout'>)</span>
+<a name="line-1073"></a><span class='definition'>getOutputEncodingFct</span> <span class='varid'>enc</span>
+<a name="line-1074"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>outputEncodingTable</span>
+<a name="line-1075"></a>
+<a name="line-1076"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1077"></a><span class='comment'>--</span>
+<a name="line-1078"></a>
+<a name="line-1079"></a><a name="guessEncoding"></a><span class='definition'>guessEncoding</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-1080"></a>
+<a name="line-1081"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4LE"</span>		<span class='comment'>-- with byte order mark</span>
+<a name="line-1082"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>		<span class='comment'>-- with byte order mark</span>
+<a name="line-1083"></a>
+<a name="line-1084"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-3421"</span>		<span class='comment'>-- with byte order mark</span>
+<a name="line-1085"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>		<span class='comment'>-- with byte order mark</span>
+<a name="line-1086"></a>
+<a name="line-1087"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>utf8</span>			<span class='comment'>-- with byte order mark</span>
+<a name="line-1088"></a>
+<a name="line-1089"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4BE"</span>		<span class='comment'>-- with byte order mark</span>
+<a name="line-1090"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-2143"</span>		<span class='comment'>-- with byte order mark</span>
+<a name="line-1091"></a>
+<a name="line-1092"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4BE"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
+<a name="line-1093"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4LE"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
+<a name="line-1094"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-2143"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
+<a name="line-1095"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UCS-4-3412"</span>		<span class='comment'>-- "&lt;" of "&lt;?xml"</span>
+<a name="line-1096"></a>
+<a name="line-1097"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3F'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>		<span class='comment'>-- "&lt;?" of "&lt;?xml"</span>
+<a name="line-1098"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3F'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>		<span class='comment'>-- "&lt;?" of "&lt;?xml"</span>
+<a name="line-1099"></a>
+<a name="line-1100"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x4C'</span><span class='conop'>:</span><span class='chr'>'\x6F'</span><span class='conop'>:</span><span class='chr'>'\xA7'</span><span class='conop'>:</span><span class='chr'>'\x94'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"EBCDIC"</span>		<span class='comment'>-- "&lt;?xm" of "&lt;?xml"</span>
+<a name="line-1101"></a>
+<a name="line-1102"></a><span class='definition'>guessEncoding</span> <span class='keyword'>_</span>					<span class='keyglyph'>=</span> <span class='str'>""</span>			<span class='comment'>-- no guess</span>
+<a name="line-1103"></a>
+<a name="line-1104"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html b/doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html
@@ -64,301 +64,305 @@
 <a name="line-56"></a> <span class='varid'>a_module</span><span class='layout'>,</span>
 <a name="line-57"></a> <span class='varid'>a_modifier</span><span class='layout'>,</span>
 <a name="line-58"></a> <span class='varid'>a_name</span><span class='layout'>,</span>
-<a name="line-59"></a> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span>
-<a name="line-60"></a> <span class='varid'>a_options_curl</span><span class='layout'>,</span>
-<a name="line-61"></a> <span class='varid'>a_output_encoding</span><span class='layout'>,</span>
-<a name="line-62"></a> <span class='varid'>a_output_file</span><span class='layout'>,</span>
-<a name="line-63"></a> <span class='varid'>a_output_xml</span><span class='layout'>,</span>
-<a name="line-64"></a> <span class='varid'>a_output_html</span><span class='layout'>,</span>
-<a name="line-65"></a> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>
-<a name="line-66"></a> <span class='varid'>a_parse_html</span><span class='layout'>,</span>
-<a name="line-67"></a> <span class='varid'>a_parse_xml</span><span class='layout'>,</span>
-<a name="line-68"></a> <span class='varid'>a_peref</span><span class='layout'>,</span>
-<a name="line-69"></a> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>
-<a name="line-70"></a> <span class='varid'>a_propagate_errors</span><span class='layout'>,</span>
-<a name="line-71"></a> <span class='varid'>a_proxy</span><span class='layout'>,</span>
-<a name="line-72"></a> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>
-<a name="line-73"></a> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>
-<a name="line-74"></a> <span class='varid'>a_show_tree</span><span class='layout'>,</span>
-<a name="line-75"></a> <span class='varid'>a_source</span><span class='layout'>,</span>
-<a name="line-76"></a> <span class='varid'>a_status</span><span class='layout'>,</span>
-<a name="line-77"></a> <span class='varid'>a_standalone</span><span class='layout'>,</span>
-<a name="line-78"></a> <span class='varid'>a_tagsoup</span><span class='layout'>,</span>
-<a name="line-79"></a> <span class='varid'>a_trace</span><span class='layout'>,</span>
-<a name="line-80"></a> <span class='varid'>a_type</span><span class='layout'>,</span>
-<a name="line-81"></a> <span class='varid'>a_use_curl</span><span class='layout'>,</span>
-<a name="line-82"></a> <span class='varid'>a_url</span><span class='layout'>,</span>
-<a name="line-83"></a> <span class='varid'>a_validate</span><span class='layout'>,</span>
-<a name="line-84"></a> <span class='varid'>a_value</span><span class='layout'>,</span>
-<a name="line-85"></a> <span class='varid'>a_verbose</span><span class='layout'>,</span>
-<a name="line-86"></a> <span class='varid'>a_version</span><span class='layout'>,</span>
-<a name="line-87"></a> <span class='varid'>a_xml</span><span class='layout'>,</span>
-<a name="line-88"></a> <span class='varid'>a_xmlns</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-89"></a>
-<a name="line-90"></a><a name="v_0"></a><span class='definition'>v_0</span><span class='layout'>,</span>				<span class='comment'>-- attribute values</span>
-<a name="line-91"></a> <span class='varid'>v_1</span><span class='layout'>,</span>
-<a name="line-92"></a> <span class='varid'>v_yes</span><span class='layout'>,</span>
-<a name="line-93"></a> <span class='varid'>v_no</span><span class='layout'>,</span>
-<a name="line-94"></a> <span class='varid'>v_any</span><span class='layout'>,</span>
-<a name="line-95"></a> <span class='varid'>v_children</span><span class='layout'>,</span>
-<a name="line-96"></a> <span class='varid'>v_choice</span><span class='layout'>,</span>
-<a name="line-97"></a> <span class='varid'>v_empty</span><span class='layout'>,</span>
-<a name="line-98"></a> <span class='varid'>v_mixed</span><span class='layout'>,</span>
-<a name="line-99"></a> <span class='varid'>v_seq</span><span class='layout'>,</span>
-<a name="line-100"></a> <span class='varid'>v_null</span><span class='layout'>,</span>
-<a name="line-101"></a> <span class='varid'>v_option</span><span class='layout'>,</span>
-<a name="line-102"></a> <span class='varid'>v_pcdata</span><span class='layout'>,</span>
-<a name="line-103"></a> <span class='varid'>v_star</span><span class='layout'>,</span>
-<a name="line-104"></a> <span class='varid'>v_plus</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-105"></a>
-<a name="line-106"></a><a name="k_any"></a><span class='definition'>k_any</span><span class='layout'>,</span>				<span class='comment'>-- DTD keywords</span>
-<a name="line-107"></a> <span class='varid'>k_cdata</span><span class='layout'>,</span>
-<a name="line-108"></a> <span class='varid'>k_empty</span><span class='layout'>,</span>
-<a name="line-109"></a> <span class='varid'>k_entity</span><span class='layout'>,</span>
-<a name="line-110"></a> <span class='varid'>k_entities</span><span class='layout'>,</span>
-<a name="line-111"></a> <span class='varid'>k_id</span><span class='layout'>,</span>
-<a name="line-112"></a> <span class='varid'>k_idref</span><span class='layout'>,</span>
-<a name="line-113"></a> <span class='varid'>k_idrefs</span><span class='layout'>,</span>
-<a name="line-114"></a> <span class='varid'>k_include</span><span class='layout'>,</span>
-<a name="line-115"></a> <span class='varid'>k_ignore</span><span class='layout'>,</span>
-<a name="line-116"></a> <span class='varid'>k_nmtoken</span><span class='layout'>,</span>
-<a name="line-117"></a> <span class='varid'>k_nmtokens</span><span class='layout'>,</span>
-<a name="line-118"></a> <span class='varid'>k_peref</span><span class='layout'>,</span>
-<a name="line-119"></a> <span class='varid'>k_public</span><span class='layout'>,</span>
-<a name="line-120"></a> <span class='varid'>k_system</span><span class='layout'>,</span>
-<a name="line-121"></a> <span class='varid'>k_enumeration</span><span class='layout'>,</span>
-<a name="line-122"></a> <span class='varid'>k_fixed</span><span class='layout'>,</span>
-<a name="line-123"></a> <span class='varid'>k_implied</span><span class='layout'>,</span>
-<a name="line-124"></a> <span class='varid'>k_ndata</span><span class='layout'>,</span>
-<a name="line-125"></a> <span class='varid'>k_notation</span><span class='layout'>,</span>
-<a name="line-126"></a> <span class='varid'>k_pcdata</span><span class='layout'>,</span>
-<a name="line-127"></a> <span class='varid'>k_required</span><span class='layout'>,</span>
-<a name="line-128"></a> <span class='varid'>k_default</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-129"></a>
-<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-59"></a> <span class='varid'>a_no_empty_elements</span><span class='layout'>,</span>
+<a name="line-60"></a> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span>
+<a name="line-61"></a> <span class='varid'>a_options_curl</span><span class='layout'>,</span>
+<a name="line-62"></a> <span class='varid'>a_output_encoding</span><span class='layout'>,</span>
+<a name="line-63"></a> <span class='varid'>a_output_file</span><span class='layout'>,</span>
+<a name="line-64"></a> <span class='varid'>a_output_xml</span><span class='layout'>,</span>
+<a name="line-65"></a> <span class='varid'>a_output_html</span><span class='layout'>,</span>
+<a name="line-66"></a> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>
+<a name="line-67"></a> <span class='varid'>a_parse_html</span><span class='layout'>,</span>
+<a name="line-68"></a> <span class='varid'>a_parse_xml</span><span class='layout'>,</span>
+<a name="line-69"></a> <span class='varid'>a_peref</span><span class='layout'>,</span>
+<a name="line-70"></a> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>
+<a name="line-71"></a> <span class='varid'>a_propagate_errors</span><span class='layout'>,</span>
+<a name="line-72"></a> <span class='varid'>a_proxy</span><span class='layout'>,</span>
+<a name="line-73"></a> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>
+<a name="line-74"></a> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>
+<a name="line-75"></a> <span class='varid'>a_show_tree</span><span class='layout'>,</span>
+<a name="line-76"></a> <span class='varid'>a_source</span><span class='layout'>,</span>
+<a name="line-77"></a> <span class='varid'>a_status</span><span class='layout'>,</span>
+<a name="line-78"></a> <span class='varid'>a_standalone</span><span class='layout'>,</span>
+<a name="line-79"></a> <span class='varid'>a_strict_input</span><span class='layout'>,</span>
+<a name="line-80"></a> <span class='varid'>a_tagsoup</span><span class='layout'>,</span>
+<a name="line-81"></a> <span class='varid'>a_trace</span><span class='layout'>,</span>
+<a name="line-82"></a> <span class='varid'>a_type</span><span class='layout'>,</span>
+<a name="line-83"></a> <span class='varid'>a_use_curl</span><span class='layout'>,</span>
+<a name="line-84"></a> <span class='varid'>a_url</span><span class='layout'>,</span>
+<a name="line-85"></a> <span class='varid'>a_validate</span><span class='layout'>,</span>
+<a name="line-86"></a> <span class='varid'>a_value</span><span class='layout'>,</span>
+<a name="line-87"></a> <span class='varid'>a_verbose</span><span class='layout'>,</span>
+<a name="line-88"></a> <span class='varid'>a_version</span><span class='layout'>,</span>
+<a name="line-89"></a> <span class='varid'>a_xml</span><span class='layout'>,</span>
+<a name="line-90"></a> <span class='varid'>a_xmlns</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-91"></a>
+<a name="line-92"></a><a name="v_0"></a><span class='definition'>v_0</span><span class='layout'>,</span>				<span class='comment'>-- attribute values</span>
+<a name="line-93"></a> <span class='varid'>v_1</span><span class='layout'>,</span>
+<a name="line-94"></a> <span class='varid'>v_yes</span><span class='layout'>,</span>
+<a name="line-95"></a> <span class='varid'>v_no</span><span class='layout'>,</span>
+<a name="line-96"></a> <span class='varid'>v_any</span><span class='layout'>,</span>
+<a name="line-97"></a> <span class='varid'>v_children</span><span class='layout'>,</span>
+<a name="line-98"></a> <span class='varid'>v_choice</span><span class='layout'>,</span>
+<a name="line-99"></a> <span class='varid'>v_empty</span><span class='layout'>,</span>
+<a name="line-100"></a> <span class='varid'>v_mixed</span><span class='layout'>,</span>
+<a name="line-101"></a> <span class='varid'>v_seq</span><span class='layout'>,</span>
+<a name="line-102"></a> <span class='varid'>v_null</span><span class='layout'>,</span>
+<a name="line-103"></a> <span class='varid'>v_option</span><span class='layout'>,</span>
+<a name="line-104"></a> <span class='varid'>v_pcdata</span><span class='layout'>,</span>
+<a name="line-105"></a> <span class='varid'>v_star</span><span class='layout'>,</span>
+<a name="line-106"></a> <span class='varid'>v_plus</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-107"></a>
+<a name="line-108"></a><a name="k_any"></a><span class='definition'>k_any</span><span class='layout'>,</span>				<span class='comment'>-- DTD keywords</span>
+<a name="line-109"></a> <span class='varid'>k_cdata</span><span class='layout'>,</span>
+<a name="line-110"></a> <span class='varid'>k_empty</span><span class='layout'>,</span>
+<a name="line-111"></a> <span class='varid'>k_entity</span><span class='layout'>,</span>
+<a name="line-112"></a> <span class='varid'>k_entities</span><span class='layout'>,</span>
+<a name="line-113"></a> <span class='varid'>k_id</span><span class='layout'>,</span>
+<a name="line-114"></a> <span class='varid'>k_idref</span><span class='layout'>,</span>
+<a name="line-115"></a> <span class='varid'>k_idrefs</span><span class='layout'>,</span>
+<a name="line-116"></a> <span class='varid'>k_include</span><span class='layout'>,</span>
+<a name="line-117"></a> <span class='varid'>k_ignore</span><span class='layout'>,</span>
+<a name="line-118"></a> <span class='varid'>k_nmtoken</span><span class='layout'>,</span>
+<a name="line-119"></a> <span class='varid'>k_nmtokens</span><span class='layout'>,</span>
+<a name="line-120"></a> <span class='varid'>k_peref</span><span class='layout'>,</span>
+<a name="line-121"></a> <span class='varid'>k_public</span><span class='layout'>,</span>
+<a name="line-122"></a> <span class='varid'>k_system</span><span class='layout'>,</span>
+<a name="line-123"></a> <span class='varid'>k_enumeration</span><span class='layout'>,</span>
+<a name="line-124"></a> <span class='varid'>k_fixed</span><span class='layout'>,</span>
+<a name="line-125"></a> <span class='varid'>k_implied</span><span class='layout'>,</span>
+<a name="line-126"></a> <span class='varid'>k_ndata</span><span class='layout'>,</span>
+<a name="line-127"></a> <span class='varid'>k_notation</span><span class='layout'>,</span>
+<a name="line-128"></a> <span class='varid'>k_pcdata</span><span class='layout'>,</span>
+<a name="line-129"></a> <span class='varid'>k_required</span><span class='layout'>,</span>
+<a name="line-130"></a> <span class='varid'>k_default</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
 <a name="line-131"></a>
-<a name="line-132"></a><span class='definition'>t_xml</span>		<span class='keyglyph'>=</span> <span class='str'>"xml"</span>
-<a name="line-133"></a><a name="t_root"></a><span class='definition'>t_root</span>		<span class='keyglyph'>=</span> <span class='str'>"/"</span>		<span class='comment'>-- name of root node tag</span>
-<a name="line-134"></a>
-<a name="line-135"></a><span class='definition'>a_canonicalize</span>			<span class='keyglyph'>=</span> <span class='str'>"canonicalize"</span>
-<a name="line-136"></a><a name="a_check_namespaces"></a><span class='definition'>a_check_namespaces</span>		<span class='keyglyph'>=</span> <span class='str'>"check-namespaces"</span>
-<a name="line-137"></a><a name="a_collect_errors"></a><span class='definition'>a_collect_errors</span>		<span class='keyglyph'>=</span> <span class='str'>"collect-errors"</span>
-<a name="line-138"></a><a name="a_column"></a><span class='definition'>a_column</span>			<span class='keyglyph'>=</span> <span class='str'>"column"</span>
-<a name="line-139"></a><a name="a_contentLength"></a><span class='definition'>a_contentLength</span>			<span class='keyglyph'>=</span> <span class='str'>"Content-Length"</span>
-<a name="line-140"></a><a name="a_default"></a><span class='definition'>a_default</span>			<span class='keyglyph'>=</span> <span class='str'>"default"</span>
-<a name="line-141"></a><a name="a_default_baseuri"></a><span class='definition'>a_default_baseuri</span>		<span class='keyglyph'>=</span> <span class='str'>"default-base-URI"</span>
-<a name="line-142"></a><a name="a_do_not_canonicalize"></a><span class='definition'>a_do_not_canonicalize</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-canonicalize"</span>
-<a name="line-143"></a><a name="a_do_not_check_namespaces"></a><span class='definition'>a_do_not_check_namespaces</span>	<span class='keyglyph'>=</span> <span class='str'>"do-not-check-namespaces"</span>
-<a name="line-144"></a><a name="a_do_not_issue_errors"></a><span class='definition'>a_do_not_issue_errors</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-issue-errors"</span>
-<a name="line-145"></a><a name="a_do_not_issue_warnings"></a><span class='definition'>a_do_not_issue_warnings</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-issue-warnings"</span>
-<a name="line-146"></a><a name="a_do_not_preserve_comment"></a><span class='definition'>a_do_not_preserve_comment</span>	<span class='keyglyph'>=</span> <span class='str'>"do-not-preserve-comment"</span>
-<a name="line-147"></a><a name="a_do_not_remove_whitespace"></a><span class='definition'>a_do_not_remove_whitespace</span>	<span class='keyglyph'>=</span> <span class='str'>"do-not-remove-whitespace"</span>
-<a name="line-148"></a><a name="a_do_not_use_curl"></a><span class='definition'>a_do_not_use_curl</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-use-curl"</span>
-<a name="line-149"></a><a name="a_do_not_validate"></a><span class='definition'>a_do_not_validate</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-validate"</span>
-<a name="line-150"></a><a name="a_encoding"></a><span class='definition'>a_encoding</span>			<span class='keyglyph'>=</span> <span class='str'>"encoding"</span>
-<a name="line-151"></a><a name="a_error"></a><span class='definition'>a_error</span>				<span class='keyglyph'>=</span> <span class='str'>"error"</span>
-<a name="line-152"></a><a name="a_error_log"></a><span class='definition'>a_error_log</span>			<span class='keyglyph'>=</span> <span class='str'>"errorLog"</span>
-<a name="line-153"></a><a name="a_help"></a><span class='definition'>a_help</span>				<span class='keyglyph'>=</span> <span class='str'>"help"</span>
-<a name="line-154"></a><a name="a_ignore_encoding_errors"></a><span class='definition'>a_ignore_encoding_errors</span>	<span class='keyglyph'>=</span> <span class='str'>"ignore-encoding-errors"</span>
-<a name="line-155"></a><a name="a_ignore_none_xml_contents"></a><span class='definition'>a_ignore_none_xml_contents</span>	<span class='keyglyph'>=</span> <span class='str'>"ignore-none-xml-contents"</span>
-<a name="line-156"></a><a name="a_indent"></a><span class='definition'>a_indent</span>			<span class='keyglyph'>=</span> <span class='str'>"indent"</span>
-<a name="line-157"></a><a name="a_issue_warnings"></a><span class='definition'>a_issue_warnings</span>		<span class='keyglyph'>=</span> <span class='str'>"issue-warnings"</span>
-<a name="line-158"></a><a name="a_issue_errors"></a><span class='definition'>a_issue_errors</span>			<span class='keyglyph'>=</span> <span class='str'>"issue-errors"</span>
-<a name="line-159"></a><a name="a_kind"></a><span class='definition'>a_kind</span>				<span class='keyglyph'>=</span> <span class='str'>"kind"</span>
-<a name="line-160"></a><a name="a_line"></a><span class='definition'>a_line</span>				<span class='keyglyph'>=</span> <span class='str'>"line"</span>
-<a name="line-161"></a><a name="a_mime_types"></a><span class='definition'>a_mime_types</span>			<span class='keyglyph'>=</span> <span class='str'>"mimetypes"</span>
-<a name="line-162"></a><a name="a_module"></a><span class='definition'>a_module</span>			<span class='keyglyph'>=</span> <span class='str'>"module"</span>
-<a name="line-163"></a><a name="a_modifier"></a><span class='definition'>a_modifier</span>			<span class='keyglyph'>=</span> <span class='str'>"modifier"</span>
-<a name="line-164"></a><a name="a_name"></a><span class='definition'>a_name</span>				<span class='keyglyph'>=</span> <span class='str'>"name"</span>
-<a name="line-165"></a><a name="a_no_xml_pi"></a><span class='definition'>a_no_xml_pi</span>                     <span class='keyglyph'>=</span> <span class='str'>"no-xml-pi"</span>
-<a name="line-166"></a><a name="a_options_curl"></a><span class='definition'>a_options_curl</span>			<span class='keyglyph'>=</span> <span class='str'>"options-curl"</span>
-<a name="line-167"></a><a name="a_output_file"></a><span class='definition'>a_output_file</span>			<span class='keyglyph'>=</span> <span class='str'>"output-file"</span>
-<a name="line-168"></a><a name="a_output_encoding"></a><span class='definition'>a_output_encoding</span>		<span class='keyglyph'>=</span> <span class='str'>"output-encoding"</span>
-<a name="line-169"></a><a name="a_output_html"></a><span class='definition'>a_output_html</span>			<span class='keyglyph'>=</span> <span class='str'>"output-html"</span>
-<a name="line-170"></a><a name="a_output_xml"></a><span class='definition'>a_output_xml</span>			<span class='keyglyph'>=</span> <span class='str'>"output-xml"</span>
-<a name="line-171"></a><a name="a_parse_by_mimetype"></a><span class='definition'>a_parse_by_mimetype</span>		<span class='keyglyph'>=</span> <span class='str'>"parse-by-mimetype"</span>
-<a name="line-172"></a><a name="a_parse_html"></a><span class='definition'>a_parse_html</span>			<span class='keyglyph'>=</span> <span class='str'>"parse-html"</span>
-<a name="line-173"></a><a name="a_parse_xml"></a><span class='definition'>a_parse_xml</span>			<span class='keyglyph'>=</span> <span class='str'>"parse-xml"</span>
-<a name="line-174"></a><a name="a_peref"></a><span class='definition'>a_peref</span>				<span class='keyglyph'>=</span> <span class='varid'>k_peref</span>
-<a name="line-175"></a><a name="a_preserve_comment"></a><span class='definition'>a_preserve_comment</span> 		<span class='keyglyph'>=</span> <span class='str'>"preserve-comment"</span>
-<a name="line-176"></a><a name="a_propagate_errors"></a><span class='definition'>a_propagate_errors</span>		<span class='keyglyph'>=</span> <span class='str'>"propagate-errors"</span>
-<a name="line-177"></a><a name="a_proxy"></a><span class='definition'>a_proxy</span>				<span class='keyglyph'>=</span> <span class='str'>"proxy"</span>
-<a name="line-178"></a><a name="a_remove_whitespace"></a><span class='definition'>a_remove_whitespace</span> 		<span class='keyglyph'>=</span> <span class='str'>"remove-whitespace"</span>
-<a name="line-179"></a><a name="a_show_haskell"></a><span class='definition'>a_show_haskell</span>			<span class='keyglyph'>=</span> <span class='str'>"show-haskell"</span>
-<a name="line-180"></a><a name="a_show_tree"></a><span class='definition'>a_show_tree</span>			<span class='keyglyph'>=</span> <span class='str'>"show-tree"</span>
-<a name="line-181"></a><a name="a_source"></a><span class='definition'>a_source</span>			<span class='keyglyph'>=</span> <span class='str'>"source"</span>
-<a name="line-182"></a><a name="a_standalone"></a><span class='definition'>a_standalone</span>			<span class='keyglyph'>=</span> <span class='str'>"standalone"</span>
-<a name="line-183"></a><a name="a_status"></a><span class='definition'>a_status</span>			<span class='keyglyph'>=</span> <span class='str'>"status"</span>
-<a name="line-184"></a><a name="a_tagsoup"></a><span class='definition'>a_tagsoup</span>			<span class='keyglyph'>=</span> <span class='str'>"tagsoup"</span>
-<a name="line-185"></a><a name="a_trace"></a><span class='definition'>a_trace</span>				<span class='keyglyph'>=</span> <span class='str'>"trace"</span>
-<a name="line-186"></a><a name="a_type"></a><span class='definition'>a_type</span>				<span class='keyglyph'>=</span> <span class='str'>"type"</span>
-<a name="line-187"></a><a name="a_url"></a><span class='definition'>a_url</span>				<span class='keyglyph'>=</span> <span class='str'>"url"</span>
-<a name="line-188"></a><a name="a_use_curl"></a><span class='definition'>a_use_curl</span>			<span class='keyglyph'>=</span> <span class='str'>"use-curl"</span>
-<a name="line-189"></a><a name="a_validate"></a><span class='definition'>a_validate</span>			<span class='keyglyph'>=</span> <span class='str'>"validate"</span>
-<a name="line-190"></a><a name="a_value"></a><span class='definition'>a_value</span>				<span class='keyglyph'>=</span> <span class='str'>"value"</span>
-<a name="line-191"></a><a name="a_verbose"></a><span class='definition'>a_verbose</span>			<span class='keyglyph'>=</span> <span class='str'>"verbose"</span>
-<a name="line-192"></a><a name="a_version"></a><span class='definition'>a_version</span>			<span class='keyglyph'>=</span> <span class='str'>"version"</span>
-<a name="line-193"></a><a name="a_xml"></a><span class='definition'>a_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"xml"</span>
-<a name="line-194"></a><a name="a_xmlns"></a><span class='definition'>a_xmlns</span>				<span class='keyglyph'>=</span> <span class='str'>"xmlns"</span>
-<a name="line-195"></a>
-<a name="line-196"></a><a name="v_yes"></a><span class='definition'>v_yes</span>		<span class='keyglyph'>=</span> <span class='str'>"yes"</span>
-<a name="line-197"></a><a name="v_no"></a><span class='definition'>v_no</span>		<span class='keyglyph'>=</span> <span class='str'>"no"</span>
-<a name="line-198"></a><a name="v_1"></a><span class='definition'>v_1</span>		<span class='keyglyph'>=</span> <span class='str'>"1"</span>
-<a name="line-199"></a><span class='definition'>v_0</span>		<span class='keyglyph'>=</span> <span class='str'>"0"</span>
-<a name="line-200"></a>
-<a name="line-201"></a><a name="v_any"></a><span class='definition'>v_any</span>		<span class='keyglyph'>=</span> <span class='varid'>k_any</span>
-<a name="line-202"></a><a name="v_children"></a><span class='definition'>v_children</span>	<span class='keyglyph'>=</span> <span class='str'>"children"</span>
-<a name="line-203"></a><a name="v_choice"></a><span class='definition'>v_choice</span>	<span class='keyglyph'>=</span> <span class='str'>"choice"</span>
-<a name="line-204"></a><a name="v_empty"></a><span class='definition'>v_empty</span>		<span class='keyglyph'>=</span> <span class='varid'>k_empty</span>
-<a name="line-205"></a><a name="v_pcdata"></a><span class='definition'>v_pcdata</span>	<span class='keyglyph'>=</span> <span class='varid'>k_pcdata</span>
-<a name="line-206"></a><a name="v_mixed"></a><span class='definition'>v_mixed</span>		<span class='keyglyph'>=</span> <span class='str'>"mixed"</span>
-<a name="line-207"></a><a name="v_seq"></a><span class='definition'>v_seq</span>		<span class='keyglyph'>=</span> <span class='str'>"seq"</span>
-<a name="line-208"></a>
-<a name="line-209"></a><a name="v_null"></a><span class='definition'>v_null</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-210"></a><a name="v_option"></a><span class='definition'>v_option</span>	<span class='keyglyph'>=</span> <span class='str'>"?"</span>
-<a name="line-211"></a><a name="v_star"></a><span class='definition'>v_star</span>		<span class='keyglyph'>=</span> <span class='str'>"*"</span>
-<a name="line-212"></a><a name="v_plus"></a><span class='definition'>v_plus</span>		<span class='keyglyph'>=</span> <span class='str'>"+"</span>
-<a name="line-213"></a>
-<a name="line-214"></a><span class='definition'>k_any</span>		<span class='keyglyph'>=</span> <span class='str'>"ANY"</span>
-<a name="line-215"></a><a name="k_cdata"></a><span class='definition'>k_cdata</span>		<span class='keyglyph'>=</span> <span class='str'>"CDATA"</span>
-<a name="line-216"></a><a name="k_empty"></a><span class='definition'>k_empty</span>		<span class='keyglyph'>=</span> <span class='str'>"EMPTY"</span>
-<a name="line-217"></a><a name="k_entity"></a><span class='definition'>k_entity</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>
-<a name="line-218"></a><a name="k_entities"></a><span class='definition'>k_entities</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>
-<a name="line-219"></a><a name="k_id"></a><span class='definition'>k_id</span>		<span class='keyglyph'>=</span> <span class='str'>"ID"</span>
-<a name="line-220"></a><a name="k_idref"></a><span class='definition'>k_idref</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>
-<a name="line-221"></a><a name="k_idrefs"></a><span class='definition'>k_idrefs</span>	<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>
-<a name="line-222"></a><a name="k_include"></a><span class='definition'>k_include</span>	<span class='keyglyph'>=</span> <span class='str'>"INCLUDE"</span>
-<a name="line-223"></a><a name="k_ignore"></a><span class='definition'>k_ignore</span>	<span class='keyglyph'>=</span> <span class='str'>"IGNORE"</span>
-<a name="line-224"></a><a name="k_nmtoken"></a><span class='definition'>k_nmtoken</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>
-<a name="line-225"></a><a name="k_nmtokens"></a><span class='definition'>k_nmtokens</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>
-<a name="line-226"></a><a name="k_peref"></a><span class='definition'>k_peref</span>		<span class='keyglyph'>=</span> <span class='str'>"PERef"</span>
-<a name="line-227"></a><a name="k_public"></a><span class='definition'>k_public</span>	<span class='keyglyph'>=</span> <span class='str'>"PUBLIC"</span>
-<a name="line-228"></a><a name="k_system"></a><span class='definition'>k_system</span>	<span class='keyglyph'>=</span> <span class='str'>"SYSTEM"</span>
-<a name="line-229"></a>
-<a name="line-230"></a><a name="k_enumeration"></a><span class='definition'>k_enumeration</span>	<span class='keyglyph'>=</span> <span class='str'>"#ENUMERATION"</span>
-<a name="line-231"></a><a name="k_fixed"></a><span class='definition'>k_fixed</span>		<span class='keyglyph'>=</span> <span class='str'>"#FIXED"</span>
-<a name="line-232"></a><a name="k_implied"></a><span class='definition'>k_implied</span>	<span class='keyglyph'>=</span> <span class='str'>"#IMPLIED"</span>
-<a name="line-233"></a><a name="k_ndata"></a><span class='definition'>k_ndata</span>		<span class='keyglyph'>=</span> <span class='str'>"NDATA"</span>
-<a name="line-234"></a><a name="k_notation"></a><span class='definition'>k_notation</span>	<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>
-<a name="line-235"></a><a name="k_pcdata"></a><span class='definition'>k_pcdata</span>	<span class='keyglyph'>=</span> <span class='str'>"#PCDATA"</span>
-<a name="line-236"></a><a name="k_required"></a><span class='definition'>k_required</span>	<span class='keyglyph'>=</span> <span class='str'>"#REQUIRED"</span>
-<a name="line-237"></a><a name="k_default"></a><span class='definition'>k_default</span>	<span class='keyglyph'>=</span> <span class='str'>"#DEFAULT"</span>
-<a name="line-238"></a>
-<a name="line-239"></a>
-<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-241"></a><span class='comment'>--</span>
+<a name="line-132"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='definition'>t_xml</span>		<span class='keyglyph'>=</span> <span class='str'>"xml"</span>
+<a name="line-135"></a><a name="t_root"></a><span class='definition'>t_root</span>		<span class='keyglyph'>=</span> <span class='str'>"/"</span>		<span class='comment'>-- name of root node tag</span>
+<a name="line-136"></a>
+<a name="line-137"></a><span class='definition'>a_canonicalize</span>			<span class='keyglyph'>=</span> <span class='str'>"canonicalize"</span>
+<a name="line-138"></a><a name="a_check_namespaces"></a><span class='definition'>a_check_namespaces</span>		<span class='keyglyph'>=</span> <span class='str'>"check-namespaces"</span>
+<a name="line-139"></a><a name="a_collect_errors"></a><span class='definition'>a_collect_errors</span>		<span class='keyglyph'>=</span> <span class='str'>"collect-errors"</span>
+<a name="line-140"></a><a name="a_column"></a><span class='definition'>a_column</span>			<span class='keyglyph'>=</span> <span class='str'>"column"</span>
+<a name="line-141"></a><a name="a_contentLength"></a><span class='definition'>a_contentLength</span>			<span class='keyglyph'>=</span> <span class='str'>"Content-Length"</span>
+<a name="line-142"></a><a name="a_default"></a><span class='definition'>a_default</span>			<span class='keyglyph'>=</span> <span class='str'>"default"</span>
+<a name="line-143"></a><a name="a_default_baseuri"></a><span class='definition'>a_default_baseuri</span>		<span class='keyglyph'>=</span> <span class='str'>"default-base-URI"</span>
+<a name="line-144"></a><a name="a_do_not_canonicalize"></a><span class='definition'>a_do_not_canonicalize</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-canonicalize"</span>
+<a name="line-145"></a><a name="a_do_not_check_namespaces"></a><span class='definition'>a_do_not_check_namespaces</span>	<span class='keyglyph'>=</span> <span class='str'>"do-not-check-namespaces"</span>
+<a name="line-146"></a><a name="a_do_not_issue_errors"></a><span class='definition'>a_do_not_issue_errors</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-issue-errors"</span>
+<a name="line-147"></a><a name="a_do_not_issue_warnings"></a><span class='definition'>a_do_not_issue_warnings</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-issue-warnings"</span>
+<a name="line-148"></a><a name="a_do_not_preserve_comment"></a><span class='definition'>a_do_not_preserve_comment</span>	<span class='keyglyph'>=</span> <span class='str'>"do-not-preserve-comment"</span>
+<a name="line-149"></a><a name="a_do_not_remove_whitespace"></a><span class='definition'>a_do_not_remove_whitespace</span>	<span class='keyglyph'>=</span> <span class='str'>"do-not-remove-whitespace"</span>
+<a name="line-150"></a><a name="a_do_not_use_curl"></a><span class='definition'>a_do_not_use_curl</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-use-curl"</span>
+<a name="line-151"></a><a name="a_do_not_validate"></a><span class='definition'>a_do_not_validate</span>		<span class='keyglyph'>=</span> <span class='str'>"do-not-validate"</span>
+<a name="line-152"></a><a name="a_encoding"></a><span class='definition'>a_encoding</span>			<span class='keyglyph'>=</span> <span class='str'>"encoding"</span>
+<a name="line-153"></a><a name="a_error"></a><span class='definition'>a_error</span>				<span class='keyglyph'>=</span> <span class='str'>"error"</span>
+<a name="line-154"></a><a name="a_error_log"></a><span class='definition'>a_error_log</span>			<span class='keyglyph'>=</span> <span class='str'>"errorLog"</span>
+<a name="line-155"></a><a name="a_help"></a><span class='definition'>a_help</span>				<span class='keyglyph'>=</span> <span class='str'>"help"</span>
+<a name="line-156"></a><a name="a_ignore_encoding_errors"></a><span class='definition'>a_ignore_encoding_errors</span>	<span class='keyglyph'>=</span> <span class='str'>"ignore-encoding-errors"</span>
+<a name="line-157"></a><a name="a_ignore_none_xml_contents"></a><span class='definition'>a_ignore_none_xml_contents</span>	<span class='keyglyph'>=</span> <span class='str'>"ignore-none-xml-contents"</span>
+<a name="line-158"></a><a name="a_indent"></a><span class='definition'>a_indent</span>			<span class='keyglyph'>=</span> <span class='str'>"indent"</span>
+<a name="line-159"></a><a name="a_issue_warnings"></a><span class='definition'>a_issue_warnings</span>		<span class='keyglyph'>=</span> <span class='str'>"issue-warnings"</span>
+<a name="line-160"></a><a name="a_issue_errors"></a><span class='definition'>a_issue_errors</span>			<span class='keyglyph'>=</span> <span class='str'>"issue-errors"</span>
+<a name="line-161"></a><a name="a_kind"></a><span class='definition'>a_kind</span>				<span class='keyglyph'>=</span> <span class='str'>"kind"</span>
+<a name="line-162"></a><a name="a_line"></a><span class='definition'>a_line</span>				<span class='keyglyph'>=</span> <span class='str'>"line"</span>
+<a name="line-163"></a><a name="a_mime_types"></a><span class='definition'>a_mime_types</span>			<span class='keyglyph'>=</span> <span class='str'>"mimetypes"</span>
+<a name="line-164"></a><a name="a_module"></a><span class='definition'>a_module</span>			<span class='keyglyph'>=</span> <span class='str'>"module"</span>
+<a name="line-165"></a><a name="a_modifier"></a><span class='definition'>a_modifier</span>			<span class='keyglyph'>=</span> <span class='str'>"modifier"</span>
+<a name="line-166"></a><a name="a_name"></a><span class='definition'>a_name</span>				<span class='keyglyph'>=</span> <span class='str'>"name"</span>
+<a name="line-167"></a><a name="a_no_empty_elements"></a><span class='definition'>a_no_empty_elements</span>		<span class='keyglyph'>=</span> <span class='str'>"no-empty-elements"</span>
+<a name="line-168"></a><a name="a_no_xml_pi"></a><span class='definition'>a_no_xml_pi</span>                     <span class='keyglyph'>=</span> <span class='str'>"no-xml-pi"</span>
+<a name="line-169"></a><a name="a_options_curl"></a><span class='definition'>a_options_curl</span>			<span class='keyglyph'>=</span> <span class='str'>"options-curl"</span>
+<a name="line-170"></a><a name="a_output_file"></a><span class='definition'>a_output_file</span>			<span class='keyglyph'>=</span> <span class='str'>"output-file"</span>
+<a name="line-171"></a><a name="a_output_encoding"></a><span class='definition'>a_output_encoding</span>		<span class='keyglyph'>=</span> <span class='str'>"output-encoding"</span>
+<a name="line-172"></a><a name="a_output_html"></a><span class='definition'>a_output_html</span>			<span class='keyglyph'>=</span> <span class='str'>"output-html"</span>
+<a name="line-173"></a><a name="a_output_xml"></a><span class='definition'>a_output_xml</span>			<span class='keyglyph'>=</span> <span class='str'>"output-xml"</span>
+<a name="line-174"></a><a name="a_parse_by_mimetype"></a><span class='definition'>a_parse_by_mimetype</span>		<span class='keyglyph'>=</span> <span class='str'>"parse-by-mimetype"</span>
+<a name="line-175"></a><a name="a_parse_html"></a><span class='definition'>a_parse_html</span>			<span class='keyglyph'>=</span> <span class='str'>"parse-html"</span>
+<a name="line-176"></a><a name="a_parse_xml"></a><span class='definition'>a_parse_xml</span>			<span class='keyglyph'>=</span> <span class='str'>"parse-xml"</span>
+<a name="line-177"></a><a name="a_peref"></a><span class='definition'>a_peref</span>				<span class='keyglyph'>=</span> <span class='varid'>k_peref</span>
+<a name="line-178"></a><a name="a_preserve_comment"></a><span class='definition'>a_preserve_comment</span> 		<span class='keyglyph'>=</span> <span class='str'>"preserve-comment"</span>
+<a name="line-179"></a><a name="a_propagate_errors"></a><span class='definition'>a_propagate_errors</span>		<span class='keyglyph'>=</span> <span class='str'>"propagate-errors"</span>
+<a name="line-180"></a><a name="a_proxy"></a><span class='definition'>a_proxy</span>				<span class='keyglyph'>=</span> <span class='str'>"proxy"</span>
+<a name="line-181"></a><a name="a_remove_whitespace"></a><span class='definition'>a_remove_whitespace</span> 		<span class='keyglyph'>=</span> <span class='str'>"remove-whitespace"</span>
+<a name="line-182"></a><a name="a_show_haskell"></a><span class='definition'>a_show_haskell</span>			<span class='keyglyph'>=</span> <span class='str'>"show-haskell"</span>
+<a name="line-183"></a><a name="a_show_tree"></a><span class='definition'>a_show_tree</span>			<span class='keyglyph'>=</span> <span class='str'>"show-tree"</span>
+<a name="line-184"></a><a name="a_source"></a><span class='definition'>a_source</span>			<span class='keyglyph'>=</span> <span class='str'>"source"</span>
+<a name="line-185"></a><a name="a_standalone"></a><span class='definition'>a_standalone</span>			<span class='keyglyph'>=</span> <span class='str'>"standalone"</span>
+<a name="line-186"></a><a name="a_status"></a><span class='definition'>a_status</span>			<span class='keyglyph'>=</span> <span class='str'>"status"</span>
+<a name="line-187"></a><a name="a_strict_input"></a><span class='definition'>a_strict_input</span>			<span class='keyglyph'>=</span> <span class='str'>"strict-input"</span>
+<a name="line-188"></a><a name="a_tagsoup"></a><span class='definition'>a_tagsoup</span>			<span class='keyglyph'>=</span> <span class='str'>"tagsoup"</span>
+<a name="line-189"></a><a name="a_trace"></a><span class='definition'>a_trace</span>				<span class='keyglyph'>=</span> <span class='str'>"trace"</span>
+<a name="line-190"></a><a name="a_type"></a><span class='definition'>a_type</span>				<span class='keyglyph'>=</span> <span class='str'>"type"</span>
+<a name="line-191"></a><a name="a_url"></a><span class='definition'>a_url</span>				<span class='keyglyph'>=</span> <span class='str'>"url"</span>
+<a name="line-192"></a><a name="a_use_curl"></a><span class='definition'>a_use_curl</span>			<span class='keyglyph'>=</span> <span class='str'>"use-curl"</span>
+<a name="line-193"></a><a name="a_validate"></a><span class='definition'>a_validate</span>			<span class='keyglyph'>=</span> <span class='str'>"validate"</span>
+<a name="line-194"></a><a name="a_value"></a><span class='definition'>a_value</span>				<span class='keyglyph'>=</span> <span class='str'>"value"</span>
+<a name="line-195"></a><a name="a_verbose"></a><span class='definition'>a_verbose</span>			<span class='keyglyph'>=</span> <span class='str'>"verbose"</span>
+<a name="line-196"></a><a name="a_version"></a><span class='definition'>a_version</span>			<span class='keyglyph'>=</span> <span class='str'>"version"</span>
+<a name="line-197"></a><a name="a_xml"></a><span class='definition'>a_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"xml"</span>
+<a name="line-198"></a><a name="a_xmlns"></a><span class='definition'>a_xmlns</span>				<span class='keyglyph'>=</span> <span class='str'>"xmlns"</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="v_yes"></a><span class='definition'>v_yes</span>		<span class='keyglyph'>=</span> <span class='str'>"yes"</span>
+<a name="line-201"></a><a name="v_no"></a><span class='definition'>v_no</span>		<span class='keyglyph'>=</span> <span class='str'>"no"</span>
+<a name="line-202"></a><a name="v_1"></a><span class='definition'>v_1</span>		<span class='keyglyph'>=</span> <span class='str'>"1"</span>
+<a name="line-203"></a><span class='definition'>v_0</span>		<span class='keyglyph'>=</span> <span class='str'>"0"</span>
+<a name="line-204"></a>
+<a name="line-205"></a><a name="v_any"></a><span class='definition'>v_any</span>		<span class='keyglyph'>=</span> <span class='varid'>k_any</span>
+<a name="line-206"></a><a name="v_children"></a><span class='definition'>v_children</span>	<span class='keyglyph'>=</span> <span class='str'>"children"</span>
+<a name="line-207"></a><a name="v_choice"></a><span class='definition'>v_choice</span>	<span class='keyglyph'>=</span> <span class='str'>"choice"</span>
+<a name="line-208"></a><a name="v_empty"></a><span class='definition'>v_empty</span>		<span class='keyglyph'>=</span> <span class='varid'>k_empty</span>
+<a name="line-209"></a><a name="v_pcdata"></a><span class='definition'>v_pcdata</span>	<span class='keyglyph'>=</span> <span class='varid'>k_pcdata</span>
+<a name="line-210"></a><a name="v_mixed"></a><span class='definition'>v_mixed</span>		<span class='keyglyph'>=</span> <span class='str'>"mixed"</span>
+<a name="line-211"></a><a name="v_seq"></a><span class='definition'>v_seq</span>		<span class='keyglyph'>=</span> <span class='str'>"seq"</span>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="v_null"></a><span class='definition'>v_null</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-214"></a><a name="v_option"></a><span class='definition'>v_option</span>	<span class='keyglyph'>=</span> <span class='str'>"?"</span>
+<a name="line-215"></a><a name="v_star"></a><span class='definition'>v_star</span>		<span class='keyglyph'>=</span> <span class='str'>"*"</span>
+<a name="line-216"></a><a name="v_plus"></a><span class='definition'>v_plus</span>		<span class='keyglyph'>=</span> <span class='str'>"+"</span>
+<a name="line-217"></a>
+<a name="line-218"></a><span class='definition'>k_any</span>		<span class='keyglyph'>=</span> <span class='str'>"ANY"</span>
+<a name="line-219"></a><a name="k_cdata"></a><span class='definition'>k_cdata</span>		<span class='keyglyph'>=</span> <span class='str'>"CDATA"</span>
+<a name="line-220"></a><a name="k_empty"></a><span class='definition'>k_empty</span>		<span class='keyglyph'>=</span> <span class='str'>"EMPTY"</span>
+<a name="line-221"></a><a name="k_entity"></a><span class='definition'>k_entity</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>
+<a name="line-222"></a><a name="k_entities"></a><span class='definition'>k_entities</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>
+<a name="line-223"></a><a name="k_id"></a><span class='definition'>k_id</span>		<span class='keyglyph'>=</span> <span class='str'>"ID"</span>
+<a name="line-224"></a><a name="k_idref"></a><span class='definition'>k_idref</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>
+<a name="line-225"></a><a name="k_idrefs"></a><span class='definition'>k_idrefs</span>	<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>
+<a name="line-226"></a><a name="k_include"></a><span class='definition'>k_include</span>	<span class='keyglyph'>=</span> <span class='str'>"INCLUDE"</span>
+<a name="line-227"></a><a name="k_ignore"></a><span class='definition'>k_ignore</span>	<span class='keyglyph'>=</span> <span class='str'>"IGNORE"</span>
+<a name="line-228"></a><a name="k_nmtoken"></a><span class='definition'>k_nmtoken</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>
+<a name="line-229"></a><a name="k_nmtokens"></a><span class='definition'>k_nmtokens</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>
+<a name="line-230"></a><a name="k_peref"></a><span class='definition'>k_peref</span>		<span class='keyglyph'>=</span> <span class='str'>"PERef"</span>
+<a name="line-231"></a><a name="k_public"></a><span class='definition'>k_public</span>	<span class='keyglyph'>=</span> <span class='str'>"PUBLIC"</span>
+<a name="line-232"></a><a name="k_system"></a><span class='definition'>k_system</span>	<span class='keyglyph'>=</span> <span class='str'>"SYSTEM"</span>
+<a name="line-233"></a>
+<a name="line-234"></a><a name="k_enumeration"></a><span class='definition'>k_enumeration</span>	<span class='keyglyph'>=</span> <span class='str'>"#ENUMERATION"</span>
+<a name="line-235"></a><a name="k_fixed"></a><span class='definition'>k_fixed</span>		<span class='keyglyph'>=</span> <span class='str'>"#FIXED"</span>
+<a name="line-236"></a><a name="k_implied"></a><span class='definition'>k_implied</span>	<span class='keyglyph'>=</span> <span class='str'>"#IMPLIED"</span>
+<a name="line-237"></a><a name="k_ndata"></a><span class='definition'>k_ndata</span>		<span class='keyglyph'>=</span> <span class='str'>"NDATA"</span>
+<a name="line-238"></a><a name="k_notation"></a><span class='definition'>k_notation</span>	<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>
+<a name="line-239"></a><a name="k_pcdata"></a><span class='definition'>k_pcdata</span>	<span class='keyglyph'>=</span> <span class='str'>"#PCDATA"</span>
+<a name="line-240"></a><a name="k_required"></a><span class='definition'>k_required</span>	<span class='keyglyph'>=</span> <span class='str'>"#REQUIRED"</span>
+<a name="line-241"></a><a name="k_default"></a><span class='definition'>k_default</span>	<span class='keyglyph'>=</span> <span class='str'>"#DEFAULT"</span>
 <a name="line-242"></a>
-<a name="line-243"></a><span class='comment'>-- attribute names for transfer protocol attributes</span>
-<a name="line-244"></a><span class='comment'>-- used in XmlInput for describing header information</span>
-<a name="line-245"></a><span class='comment'>-- of http and other requests</span>
+<a name="line-243"></a>
+<a name="line-244"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-245"></a><span class='comment'>--</span>
 <a name="line-246"></a>
-<a name="line-247"></a><a name="transferPrefix"></a><span class='definition'>transferPrefix</span>
-<a name="line-248"></a> <span class='layout'>,</span> <span class='varid'>transferProtocol</span>
-<a name="line-249"></a> <span class='layout'>,</span> <span class='varid'>transferMimeType</span>
-<a name="line-250"></a> <span class='layout'>,</span> <span class='varid'>transferEncoding</span>
-<a name="line-251"></a> <span class='layout'>,</span> <span class='varid'>transferURI</span>
-<a name="line-252"></a> <span class='layout'>,</span> <span class='varid'>transferDefaultURI</span>
-<a name="line-253"></a> <span class='layout'>,</span> <span class='varid'>transferStatus</span>
-<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>transferMessage</span>
-<a name="line-255"></a> <span class='layout'>,</span> <span class='varid'>transferVersion</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-256"></a>
-<a name="line-257"></a><span class='definition'>transferPrefix</span>		<span class='keyglyph'>=</span> <span class='str'>"transfer-"</span>
-<a name="line-258"></a>
-<a name="line-259"></a><a name="transferProtocol"></a><span class='definition'>transferProtocol</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Protocol"</span>
-<a name="line-260"></a><a name="transferVersion"></a><span class='definition'>transferVersion</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Version"</span>
-<a name="line-261"></a><a name="transferMimeType"></a><span class='definition'>transferMimeType</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"MimeType"</span>
-<a name="line-262"></a><a name="transferEncoding"></a><span class='definition'>transferEncoding</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Encoding"</span>
-<a name="line-263"></a><a name="transferDefaultURI"></a><span class='definition'>transferDefaultURI</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"DefaultURI"</span>
-<a name="line-264"></a><a name="transferStatus"></a><span class='definition'>transferStatus</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Status"</span>
-<a name="line-265"></a><a name="transferMessage"></a><span class='definition'>transferMessage</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Message"</span>
-<a name="line-266"></a><a name="transferURI"></a><span class='definition'>transferURI</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"URI"</span>
-<a name="line-267"></a>
-<a name="line-268"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-269"></a><span class='comment'>--</span>
-<a name="line-270"></a>
-<a name="line-271"></a><a name="httpPrefix"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-272"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>=</span> <span class='str'>"http-"</span>
-<a name="line-273"></a>
-<a name="line-274"></a><a name="stringProtocol"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-275"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>=</span> <span class='str'>"string:"</span>
-<a name="line-276"></a>
-<a name="line-277"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-278"></a><span class='comment'>--</span>
-<a name="line-279"></a><span class='comment'>-- encoding names</span>
+<a name="line-247"></a><span class='comment'>-- attribute names for transfer protocol attributes</span>
+<a name="line-248"></a><span class='comment'>-- used in XmlInput for describing header information</span>
+<a name="line-249"></a><span class='comment'>-- of http and other requests</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="transferPrefix"></a><span class='definition'>transferPrefix</span>
+<a name="line-252"></a> <span class='layout'>,</span> <span class='varid'>transferProtocol</span>
+<a name="line-253"></a> <span class='layout'>,</span> <span class='varid'>transferMimeType</span>
+<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>transferEncoding</span>
+<a name="line-255"></a> <span class='layout'>,</span> <span class='varid'>transferURI</span>
+<a name="line-256"></a> <span class='layout'>,</span> <span class='varid'>transferDefaultURI</span>
+<a name="line-257"></a> <span class='layout'>,</span> <span class='varid'>transferStatus</span>
+<a name="line-258"></a> <span class='layout'>,</span> <span class='varid'>transferMessage</span>
+<a name="line-259"></a> <span class='layout'>,</span> <span class='varid'>transferVersion</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-260"></a>
+<a name="line-261"></a><span class='definition'>transferPrefix</span>		<span class='keyglyph'>=</span> <span class='str'>"transfer-"</span>
+<a name="line-262"></a>
+<a name="line-263"></a><a name="transferProtocol"></a><span class='definition'>transferProtocol</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Protocol"</span>
+<a name="line-264"></a><a name="transferVersion"></a><span class='definition'>transferVersion</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Version"</span>
+<a name="line-265"></a><a name="transferMimeType"></a><span class='definition'>transferMimeType</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"MimeType"</span>
+<a name="line-266"></a><a name="transferEncoding"></a><span class='definition'>transferEncoding</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Encoding"</span>
+<a name="line-267"></a><a name="transferDefaultURI"></a><span class='definition'>transferDefaultURI</span>	<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"DefaultURI"</span>
+<a name="line-268"></a><a name="transferStatus"></a><span class='definition'>transferStatus</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Status"</span>
+<a name="line-269"></a><a name="transferMessage"></a><span class='definition'>transferMessage</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Message"</span>
+<a name="line-270"></a><a name="transferURI"></a><span class='definition'>transferURI</span>		<span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"URI"</span>
+<a name="line-271"></a>
+<a name="line-272"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-273"></a><span class='comment'>--</span>
+<a name="line-274"></a>
+<a name="line-275"></a><a name="httpPrefix"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-276"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>=</span> <span class='str'>"http-"</span>
+<a name="line-277"></a>
+<a name="line-278"></a><a name="stringProtocol"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-279"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>=</span> <span class='str'>"string:"</span>
 <a name="line-280"></a>
-<a name="line-281"></a><a name="isoLatin1"></a><span class='definition'>isoLatin1</span>
-<a name="line-282"></a>  <span class='layout'>,</span> <span class='varid'>iso8859_1</span><span class='layout'>,</span> <span class='varid'>iso8859_2</span><span class='layout'>,</span> <span class='varid'>iso8859_3</span><span class='layout'>,</span> <span class='varid'>iso8859_4</span><span class='layout'>,</span> <span class='varid'>iso8859_5</span>
-<a name="line-283"></a>  <span class='layout'>,</span> <span class='varid'>iso8859_6</span><span class='layout'>,</span> <span class='varid'>iso8859_7</span><span class='layout'>,</span> <span class='varid'>iso8859_8</span><span class='layout'>,</span> <span class='varid'>iso8859_9</span><span class='layout'>,</span> <span class='varid'>iso8859_10</span>
-<a name="line-284"></a>  <span class='layout'>,</span> <span class='varid'>iso8859_11</span><span class='layout'>,</span> <span class='varid'>iso8859_13</span><span class='layout'>,</span> <span class='varid'>iso8859_14</span><span class='layout'>,</span> <span class='varid'>iso8859_15</span><span class='layout'>,</span> <span class='varid'>iso8859_16</span>
-<a name="line-285"></a>  <span class='layout'>,</span> <span class='varid'>usAscii</span><span class='layout'>,</span> <span class='varid'>ucs2</span><span class='layout'>,</span> <span class='varid'>utf8</span><span class='layout'>,</span> <span class='varid'>utf16</span><span class='layout'>,</span> <span class='varid'>utf16be</span><span class='layout'>,</span> <span class='varid'>utf16le</span><span class='layout'>,</span> <span class='varid'>unicodeString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-286"></a>
-<a name="line-287"></a><span class='definition'>isoLatin1</span>	<span class='keyglyph'>=</span> <span class='varid'>iso8859_1</span>
-<a name="line-288"></a><a name="iso8859_1"></a><span class='definition'>iso8859_1</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-1"</span>
-<a name="line-289"></a><a name="iso8859_2"></a><span class='definition'>iso8859_2</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-2"</span>
-<a name="line-290"></a><a name="iso8859_3"></a><span class='definition'>iso8859_3</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-3"</span>
-<a name="line-291"></a><a name="iso8859_4"></a><span class='definition'>iso8859_4</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-4"</span>
-<a name="line-292"></a><a name="iso8859_5"></a><span class='definition'>iso8859_5</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-5"</span>
-<a name="line-293"></a><a name="iso8859_6"></a><span class='definition'>iso8859_6</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-6"</span>
-<a name="line-294"></a><a name="iso8859_7"></a><span class='definition'>iso8859_7</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-7"</span>
-<a name="line-295"></a><a name="iso8859_8"></a><span class='definition'>iso8859_8</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-8"</span>
-<a name="line-296"></a><a name="iso8859_9"></a><span class='definition'>iso8859_9</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-9"</span>
-<a name="line-297"></a><a name="iso8859_10"></a><span class='definition'>iso8859_10</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-10"</span>
-<a name="line-298"></a><a name="iso8859_11"></a><span class='definition'>iso8859_11</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-11"</span>
-<a name="line-299"></a><a name="iso8859_13"></a><span class='definition'>iso8859_13</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-13"</span>
-<a name="line-300"></a><a name="iso8859_14"></a><span class='definition'>iso8859_14</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-14"</span>
-<a name="line-301"></a><a name="iso8859_15"></a><span class='definition'>iso8859_15</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-15"</span>
-<a name="line-302"></a><a name="iso8859_16"></a><span class='definition'>iso8859_16</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-16"</span>
-<a name="line-303"></a><a name="usAscii"></a><span class='definition'>usAscii</span>		<span class='keyglyph'>=</span> <span class='str'>"US-ASCII"</span>
-<a name="line-304"></a><a name="ucs2"></a><span class='definition'>ucs2</span>		<span class='keyglyph'>=</span> <span class='str'>"ISO-10646-UCS-2"</span>
-<a name="line-305"></a><a name="utf8"></a><span class='definition'>utf8</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-8"</span>
-<a name="line-306"></a><a name="utf16"></a><span class='definition'>utf16</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16"</span>
-<a name="line-307"></a><a name="utf16be"></a><span class='definition'>utf16be</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>
-<a name="line-308"></a><a name="utf16le"></a><span class='definition'>utf16le</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>
-<a name="line-309"></a><a name="unicodeString"></a><span class='definition'>unicodeString</span>	<span class='keyglyph'>=</span> <span class='str'>"UNICODE"</span>
-<a name="line-310"></a>
-<a name="line-311"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-312"></a><span class='comment'>--</span>
-<a name="line-313"></a><span class='comment'>-- known namespaces</span>
+<a name="line-281"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-282"></a><span class='comment'>--</span>
+<a name="line-283"></a><span class='comment'>-- encoding names</span>
+<a name="line-284"></a>
+<a name="line-285"></a><a name="isoLatin1"></a><span class='definition'>isoLatin1</span>
+<a name="line-286"></a>  <span class='layout'>,</span> <span class='varid'>iso8859_1</span><span class='layout'>,</span> <span class='varid'>iso8859_2</span><span class='layout'>,</span> <span class='varid'>iso8859_3</span><span class='layout'>,</span> <span class='varid'>iso8859_4</span><span class='layout'>,</span> <span class='varid'>iso8859_5</span>
+<a name="line-287"></a>  <span class='layout'>,</span> <span class='varid'>iso8859_6</span><span class='layout'>,</span> <span class='varid'>iso8859_7</span><span class='layout'>,</span> <span class='varid'>iso8859_8</span><span class='layout'>,</span> <span class='varid'>iso8859_9</span><span class='layout'>,</span> <span class='varid'>iso8859_10</span>
+<a name="line-288"></a>  <span class='layout'>,</span> <span class='varid'>iso8859_11</span><span class='layout'>,</span> <span class='varid'>iso8859_13</span><span class='layout'>,</span> <span class='varid'>iso8859_14</span><span class='layout'>,</span> <span class='varid'>iso8859_15</span><span class='layout'>,</span> <span class='varid'>iso8859_16</span>
+<a name="line-289"></a>  <span class='layout'>,</span> <span class='varid'>usAscii</span><span class='layout'>,</span> <span class='varid'>ucs2</span><span class='layout'>,</span> <span class='varid'>utf8</span><span class='layout'>,</span> <span class='varid'>utf16</span><span class='layout'>,</span> <span class='varid'>utf16be</span><span class='layout'>,</span> <span class='varid'>utf16le</span><span class='layout'>,</span> <span class='varid'>unicodeString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-290"></a>
+<a name="line-291"></a><span class='definition'>isoLatin1</span>	<span class='keyglyph'>=</span> <span class='varid'>iso8859_1</span>
+<a name="line-292"></a><a name="iso8859_1"></a><span class='definition'>iso8859_1</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-1"</span>
+<a name="line-293"></a><a name="iso8859_2"></a><span class='definition'>iso8859_2</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-2"</span>
+<a name="line-294"></a><a name="iso8859_3"></a><span class='definition'>iso8859_3</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-3"</span>
+<a name="line-295"></a><a name="iso8859_4"></a><span class='definition'>iso8859_4</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-4"</span>
+<a name="line-296"></a><a name="iso8859_5"></a><span class='definition'>iso8859_5</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-5"</span>
+<a name="line-297"></a><a name="iso8859_6"></a><span class='definition'>iso8859_6</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-6"</span>
+<a name="line-298"></a><a name="iso8859_7"></a><span class='definition'>iso8859_7</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-7"</span>
+<a name="line-299"></a><a name="iso8859_8"></a><span class='definition'>iso8859_8</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-8"</span>
+<a name="line-300"></a><a name="iso8859_9"></a><span class='definition'>iso8859_9</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-9"</span>
+<a name="line-301"></a><a name="iso8859_10"></a><span class='definition'>iso8859_10</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-10"</span>
+<a name="line-302"></a><a name="iso8859_11"></a><span class='definition'>iso8859_11</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-11"</span>
+<a name="line-303"></a><a name="iso8859_13"></a><span class='definition'>iso8859_13</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-13"</span>
+<a name="line-304"></a><a name="iso8859_14"></a><span class='definition'>iso8859_14</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-14"</span>
+<a name="line-305"></a><a name="iso8859_15"></a><span class='definition'>iso8859_15</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-15"</span>
+<a name="line-306"></a><a name="iso8859_16"></a><span class='definition'>iso8859_16</span>	<span class='keyglyph'>=</span> <span class='str'>"ISO-8859-16"</span>
+<a name="line-307"></a><a name="usAscii"></a><span class='definition'>usAscii</span>		<span class='keyglyph'>=</span> <span class='str'>"US-ASCII"</span>
+<a name="line-308"></a><a name="ucs2"></a><span class='definition'>ucs2</span>		<span class='keyglyph'>=</span> <span class='str'>"ISO-10646-UCS-2"</span>
+<a name="line-309"></a><a name="utf8"></a><span class='definition'>utf8</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-8"</span>
+<a name="line-310"></a><a name="utf16"></a><span class='definition'>utf16</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16"</span>
+<a name="line-311"></a><a name="utf16be"></a><span class='definition'>utf16be</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>
+<a name="line-312"></a><a name="utf16le"></a><span class='definition'>utf16le</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>
+<a name="line-313"></a><a name="unicodeString"></a><span class='definition'>unicodeString</span>	<span class='keyglyph'>=</span> <span class='str'>"UNICODE"</span>
 <a name="line-314"></a>
-<a name="line-315"></a><span class='comment'>-- |</span>
-<a name="line-316"></a><span class='comment'>-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"</span>
-<a name="line-317"></a>
-<a name="line-318"></a><a name="xmlNamespace"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-319"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span>
-<a name="line-320"></a>
-<a name="line-321"></a><span class='comment'>-- |</span>
-<a name="line-322"></a><span class='comment'>-- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"</span>
-<a name="line-323"></a>
-<a name="line-324"></a><a name="xmlnsNamespace"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-325"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2000/xmlns/"</span>
-<a name="line-326"></a>
-<a name="line-327"></a><a name="relaxNamespace"></a><span class='comment'>-- | Relax NG namespace</span>
-<a name="line-328"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-329"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>
+<a name="line-315"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-316"></a><span class='comment'>--</span>
+<a name="line-317"></a><span class='comment'>-- known namespaces</span>
+<a name="line-318"></a>
+<a name="line-319"></a><span class='comment'>-- |</span>
+<a name="line-320"></a><span class='comment'>-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"</span>
+<a name="line-321"></a>
+<a name="line-322"></a><a name="xmlNamespace"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-323"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span>
+<a name="line-324"></a>
+<a name="line-325"></a><span class='comment'>-- |</span>
+<a name="line-326"></a><span class='comment'>-- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"</span>
+<a name="line-327"></a>
+<a name="line-328"></a><a name="xmlnsNamespace"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-329"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2000/xmlns/"</span>
 <a name="line-330"></a>
-<a name="line-331"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-332"></a><span class='comment'>-- option for Relax NG</span>
-<a name="line-333"></a>
-<a name="line-334"></a><a name="a_relax_schema"></a><span class='definition'>a_relax_schema</span><span class='layout'>,</span>
-<a name="line-335"></a> <span class='varid'>a_do_not_check_restrictions</span><span class='layout'>,</span>  
-<a name="line-336"></a> <span class='varid'>a_check_restrictions</span><span class='layout'>,</span>
-<a name="line-337"></a> <span class='varid'>a_do_not_validate_externalRef</span><span class='layout'>,</span>
-<a name="line-338"></a> <span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>
-<a name="line-339"></a> <span class='varid'>a_do_not_validate_include</span><span class='layout'>,</span>
-<a name="line-340"></a> <span class='varid'>a_validate_include</span><span class='layout'>,</span>
-<a name="line-341"></a> <span class='varid'>a_output_changes</span><span class='layout'>,</span> 
-<a name="line-342"></a> <span class='varid'>a_do_not_collect_errors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> 
-<a name="line-343"></a>
-<a name="line-344"></a><span class='definition'>a_relax_schema</span>		      <span class='keyglyph'>=</span> <span class='str'>"relax-schema"</span>
-<a name="line-345"></a><a name="a_do_not_check_restrictions"></a><span class='definition'>a_do_not_check_restrictions</span>   <span class='keyglyph'>=</span> <span class='str'>"do-not-check-restrictions"</span>
-<a name="line-346"></a><a name="a_check_restrictions"></a><span class='definition'>a_check_restrictions</span>          <span class='keyglyph'>=</span> <span class='str'>"check-restrictions"</span>
-<a name="line-347"></a><a name="a_do_not_validate_externalRef"></a><span class='definition'>a_do_not_validate_externalRef</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-validate-externalRef"</span>
-<a name="line-348"></a><a name="a_validate_externalRef"></a><span class='definition'>a_validate_externalRef</span>        <span class='keyglyph'>=</span> <span class='str'>"validate-externalRef"</span> 
-<a name="line-349"></a><a name="a_do_not_validate_include"></a><span class='definition'>a_do_not_validate_include</span>     <span class='keyglyph'>=</span> <span class='str'>"do-not-validate-include"</span>
-<a name="line-350"></a><a name="a_validate_include"></a><span class='definition'>a_validate_include</span>            <span class='keyglyph'>=</span> <span class='str'>"validate-include"</span>
-<a name="line-351"></a><a name="a_output_changes"></a><span class='definition'>a_output_changes</span>              <span class='keyglyph'>=</span> <span class='str'>"output-pattern-transformations"</span>
-<a name="line-352"></a><a name="a_do_not_collect_errors"></a><span class='definition'>a_do_not_collect_errors</span>       <span class='keyglyph'>=</span> <span class='str'>"do-not-collect-errors"</span>
-<a name="line-353"></a>
-<a name="line-354"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-331"></a><a name="relaxNamespace"></a><span class='comment'>-- | Relax NG namespace</span>
+<a name="line-332"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-333"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>
+<a name="line-334"></a>
+<a name="line-335"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-336"></a><span class='comment'>-- option for Relax NG</span>
+<a name="line-337"></a>
+<a name="line-338"></a><a name="a_relax_schema"></a><span class='definition'>a_relax_schema</span><span class='layout'>,</span>
+<a name="line-339"></a> <span class='varid'>a_do_not_check_restrictions</span><span class='layout'>,</span>  
+<a name="line-340"></a> <span class='varid'>a_check_restrictions</span><span class='layout'>,</span>
+<a name="line-341"></a> <span class='varid'>a_do_not_validate_externalRef</span><span class='layout'>,</span>
+<a name="line-342"></a> <span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>
+<a name="line-343"></a> <span class='varid'>a_do_not_validate_include</span><span class='layout'>,</span>
+<a name="line-344"></a> <span class='varid'>a_validate_include</span><span class='layout'>,</span>
+<a name="line-345"></a> <span class='varid'>a_output_changes</span><span class='layout'>,</span> 
+<a name="line-346"></a> <span class='varid'>a_do_not_collect_errors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> 
+<a name="line-347"></a>
+<a name="line-348"></a><span class='definition'>a_relax_schema</span>		      <span class='keyglyph'>=</span> <span class='str'>"relax-schema"</span>
+<a name="line-349"></a><a name="a_do_not_check_restrictions"></a><span class='definition'>a_do_not_check_restrictions</span>   <span class='keyglyph'>=</span> <span class='str'>"do-not-check-restrictions"</span>
+<a name="line-350"></a><a name="a_check_restrictions"></a><span class='definition'>a_check_restrictions</span>          <span class='keyglyph'>=</span> <span class='str'>"check-restrictions"</span>
+<a name="line-351"></a><a name="a_do_not_validate_externalRef"></a><span class='definition'>a_do_not_validate_externalRef</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-validate-externalRef"</span>
+<a name="line-352"></a><a name="a_validate_externalRef"></a><span class='definition'>a_validate_externalRef</span>        <span class='keyglyph'>=</span> <span class='str'>"validate-externalRef"</span> 
+<a name="line-353"></a><a name="a_do_not_validate_include"></a><span class='definition'>a_do_not_validate_include</span>     <span class='keyglyph'>=</span> <span class='str'>"do-not-validate-include"</span>
+<a name="line-354"></a><a name="a_validate_include"></a><span class='definition'>a_validate_include</span>            <span class='keyglyph'>=</span> <span class='str'>"validate-include"</span>
+<a name="line-355"></a><a name="a_output_changes"></a><span class='definition'>a_output_changes</span>              <span class='keyglyph'>=</span> <span class='str'>"output-pattern-transformations"</span>
+<a name="line-356"></a><a name="a_do_not_collect_errors"></a><span class='definition'>a_do_not_collect_errors</span>       <span class='keyglyph'>=</span> <span class='str'>"do-not-collect-errors"</span>
+<a name="line-357"></a>
+<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html b/doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html
@@ -311,7 +311,7 @@
 <a name="line-303"></a><span class='definition'>mkElement</span> <span class='varid'>n</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkElementNode</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>
 <a name="line-304"></a>
 <a name="line-305"></a><a name="mkRoot"></a><span class='definition'>mkRoot</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-306"></a><span class='definition'>mkRoot</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkElementNode</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>t_root</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-306"></a><span class='definition'>mkRoot</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkElementNode</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>t_root</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>
 <a name="line-307"></a>
 <a name="line-308"></a><a name="mkAttr"></a><span class='definition'>mkAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
 <a name="line-309"></a><span class='definition'>mkAttr</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkAttrNode</span> <span class='varid'>n</span><span class='layout'>)</span>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html b/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html
--- a/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html
@@ -66,124 +66,126 @@
 <a name="line-58"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"H"</span>	<span class='keyglyph'>[</span><span class='varid'>a_parse_html</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_parse_html</span>        <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"parse input as HTML, try to interprete everything as HTML, no validation"</span>
 <a name="line-59"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"M"</span>	<span class='keyglyph'>[</span><span class='varid'>a_parse_by_mimetype</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_parse_by_mimetype</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"parse dependent on mime type: text/html as HTML, text/xml and text/xhtml and others as XML, else no parse"</span>
 <a name="line-60"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_parse_xml</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_parse_html</span>        <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"parse input as XML, (default)"</span>
-<a name="line-61"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"T"</span>	<span class='keyglyph'>[</span><span class='varid'>a_tagsoup</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_tagsoup</span>           <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"lasy tagsoup parser, for HTML and XML, no DTD, no validation, no PIs, only XHTML entityrefs"</span>
-<a name="line-62"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_issue_warnings</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_warnings</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"issue warnings, when parsing HTML (default)"</span>
-<a name="line-63"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"Q"</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_issue_warnings</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_warnings</span>    <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"ignore warnings, when parsing HTML"</span>
-<a name="line-64"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_validate</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_validate</span>          <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"document validation when parsing XML (default)"</span>
-<a name="line-65"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"w"</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_validate</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_validate</span>          <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"only wellformed check, no validation"</span>
-<a name="line-66"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_canonicalize</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_canonicalize</span>      <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"canonicalize document, remove DTD, comment, transform CDATA, CharRef's, ... (default)"</span>
-<a name="line-67"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"c"</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_canonicalize</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_canonicalize</span>      <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"do not canonicalize document, don't remove DTD, comment, don't transform CDATA, CharRef's, ..."</span>
-<a name="line-68"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"C"</span>	<span class='keyglyph'>[</span><span class='varid'>a_preserve_comment</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_preserve_comment</span>  <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"don't remove comments during canonicalisation"</span>
-<a name="line-69"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_preserve_comment</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_preserve_comment</span>  <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"remove comments during canonicalisation (default)"</span>
-<a name="line-70"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"n"</span>	<span class='keyglyph'>[</span><span class='varid'>a_check_namespaces</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_check_namespaces</span>  <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"tag tree with namespace information and check namespaces"</span>
-<a name="line-71"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_check_namespaces</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_check_namespaces</span>  <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"ignore namespaces (default)"</span>
-<a name="line-72"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"r"</span>	<span class='keyglyph'>[</span><span class='varid'>a_remove_whitespace</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_remove_whitespace</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"remove redundant whitespace, simplifies tree and processing"</span>
-<a name="line-73"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_remove_whitespace</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_remove_whitespace</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"don't remove redundant whitespace (default)"</span>
-<a name="line-74"></a>      <span class='keyglyph'>]</span>
-<a name="line-75"></a>    <span class='keyword'>where</span>
-<a name="line-76"></a>    <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
-<a name="line-77"></a>    <span class='varid'>trc</span> <span class='keyglyph'>=</span> <span class='varid'>att</span> <span class='varid'>a_trace</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>max</span> <span class='num'>0</span> <span class='varop'>.</span> <span class='varid'>min</span> <span class='num'>9</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"0123456789"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='varid'>v_1</span>
-<a name="line-78"></a>
+<a name="line-61"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>       <span class='keyglyph'>[</span><span class='varid'>a_strict_input</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_strict_input</span>      <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>  <span class='str'>"read input files strictly, this ensures closing the files correctly even if not read completely"</span>
+<a name="line-62"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"T"</span>	<span class='keyglyph'>[</span><span class='varid'>a_tagsoup</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_tagsoup</span>           <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"lasy tagsoup parser, for HTML and XML, no DTD, no validation, no PIs, only XHTML entityrefs"</span>
+<a name="line-63"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_issue_warnings</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_warnings</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"issue warnings, when parsing HTML (default)"</span>
+<a name="line-64"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"Q"</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_issue_warnings</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_warnings</span>    <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"ignore warnings, when parsing HTML"</span>
+<a name="line-65"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_validate</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_validate</span>          <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"document validation when parsing XML (default)"</span>
+<a name="line-66"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"w"</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_validate</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_validate</span>          <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"only wellformed check, no validation"</span>
+<a name="line-67"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_canonicalize</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_canonicalize</span>      <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"canonicalize document, remove DTD, comment, transform CDATA, CharRef's, ... (default)"</span>
+<a name="line-68"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"c"</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_canonicalize</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_canonicalize</span>      <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"do not canonicalize document, don't remove DTD, comment, don't transform CDATA, CharRef's, ..."</span>
+<a name="line-69"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"C"</span>	<span class='keyglyph'>[</span><span class='varid'>a_preserve_comment</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_preserve_comment</span>  <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"don't remove comments during canonicalisation"</span>
+<a name="line-70"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_preserve_comment</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>	<span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_preserve_comment</span>  <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"remove comments during canonicalisation (default)"</span>
+<a name="line-71"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"n"</span>	<span class='keyglyph'>[</span><span class='varid'>a_check_namespaces</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_check_namespaces</span>  <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"tag tree with namespace information and check namespaces"</span>
+<a name="line-72"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_check_namespaces</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_check_namespaces</span>  <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"ignore namespaces (default)"</span>
+<a name="line-73"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"r"</span>	<span class='keyglyph'>[</span><span class='varid'>a_remove_whitespace</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_remove_whitespace</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"remove redundant whitespace, simplifies tree and processing"</span>
+<a name="line-74"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_remove_whitespace</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_remove_whitespace</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"don't remove redundant whitespace (default)"</span>
+<a name="line-75"></a>      <span class='keyglyph'>]</span>
+<a name="line-76"></a>    <span class='keyword'>where</span>
+<a name="line-77"></a>    <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-78"></a>    <span class='varid'>trc</span> <span class='keyglyph'>=</span> <span class='varid'>att</span> <span class='varid'>a_trace</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>max</span> <span class='num'>0</span> <span class='varop'>.</span> <span class='varid'>min</span> <span class='num'>9</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"0123456789"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='varid'>v_1</span>
 <a name="line-79"></a>
-<a name="line-80"></a><span class='comment'>-- | available Relax NG validation options</span>
-<a name="line-81"></a><span class='comment'>--</span>
-<a name="line-82"></a><span class='comment'>-- defines options</span>
-<a name="line-83"></a><span class='comment'>-- 'a_check_restrictions', 'a_validate_externalRef', 'a_validate_include', 'a_do_not_check_restrictions',  </span>
-<a name="line-84"></a><span class='comment'>-- 'a_do_not_validate_externalRef', 'a_do_not_validate_include'</span>
-<a name="line-85"></a>
-<a name="line-86"></a><a name="relaxOptions"></a><span class='definition'>relaxOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-87"></a><span class='definition'>relaxOptions</span>    
-<a name="line-88"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"X"</span> <span class='keyglyph'>[</span><span class='varid'>a_relax_schema</span><span class='keyglyph'>]</span>	        	<span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_relax_schema</span><span class='layout'>)</span> <span class='str'>"SCHEMA"</span><span class='layout'>)</span>	<span class='str'>"validation with Relax NG, SCHEMA is the URI for the Relax NG schema"</span>
-<a name="line-89"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_check_restrictions</span><span class='keyglyph'>]</span>	        <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_check_restrictions</span><span class='layout'>,</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"check Relax NG schema restrictions during schema simplification (default)"</span>
-<a name="line-90"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_do_not_check_restrictions</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_check_restrictions</span><span class='layout'>,</span>    <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"do not check Relax NG schema restrictions"</span>
-<a name="line-91"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_validate_externalRef</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>  <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"validate a Relax NG schema referenced by a externalRef-Pattern (default)"</span>
-<a name="line-92"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate_externalRef</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>  <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"do not validate a Relax NG schema referenced by an externalRef-Pattern"</span>
-<a name="line-93"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_validate_include</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_include</span><span class='layout'>,</span>      <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"validate a Relax NG schema referenced by an include-Pattern (default)"</span>
-<a name="line-94"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate_include</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_include</span><span class='layout'>,</span>      <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>   <span class='str'>"do not validate a Relax NG schema referenced by an include-Pattern"</span>
-<a name="line-95"></a>	<span class='comment'>{-
-<a name="line-96"></a>      , Option ""  [a_output_changes]			(NoArg (a_output_changes,        v_1))	"output Pattern transformations in case of an error"    
-<a name="line-97"></a>      , Option ""  [a_do_not_collect_errors]     	(NoArg (a_do_not_collect_errors, v_1))	"stop Relax NG simplification after the first error has occurred"
-<a name="line-98"></a>	-}</span>
-<a name="line-99"></a>      <span class='keyglyph'>]</span>
-<a name="line-100"></a>    <span class='keyword'>where</span>
-<a name="line-101"></a>    <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
-<a name="line-102"></a>
-<a name="line-103"></a><span class='comment'>-- |</span>
-<a name="line-104"></a><span class='comment'>-- commonly useful options for XML output</span>
-<a name="line-105"></a><span class='comment'>--</span>
-<a name="line-106"></a><span class='comment'>-- defines options: 'a_indent', 'a_output_encoding', 'a_output_file', 'a_output_html'</span>
-<a name="line-107"></a>
-<a name="line-108"></a><a name="outputOptions"></a><span class='definition'>outputOptions</span> 	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-109"></a><span class='definition'>outputOptions</span>
-<a name="line-110"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"i"</span>	<span class='keyglyph'>[</span><span class='varid'>a_indent</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_indent</span>                <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"indent XML output for readability"</span>
-<a name="line-111"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"o"</span>	<span class='keyglyph'>[</span><span class='varid'>a_output_encoding</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_encoding</span><span class='layout'>)</span> <span class='str'>"CHARSET"</span><span class='layout'>)</span>	<span class='layout'>(</span> <span class='str'>"encoding of output ("</span> <span class='varop'>++</span> <span class='varid'>utf8</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>isoLatin1</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>usAscii</span> <span class='varop'>++</span> <span class='str'>")"</span> <span class='layout'>)</span>
-<a name="line-112"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"f"</span>	<span class='keyglyph'>[</span><span class='varid'>a_output_file</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_file</span><span class='layout'>)</span>        <span class='str'>"FILE"</span><span class='layout'>)</span>	<span class='str'>"output file for resulting document (default: stdout)"</span>
-<a name="line-113"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_output_html</span><span class='keyglyph'>]</span>	        <span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_html</span>           <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"output of none ASCII chars as HTMl entity references"</span>
-<a name="line-114"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>       <span class='keyglyph'>[</span><span class='varid'>a_no_xml_pi</span><span class='keyglyph'>]</span>	        <span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_no_xml_pi</span>             <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>      <span class='layout'>(</span><span class='str'>"output without &lt;?xml ...?&gt; processing instruction, useful in combination with --"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>a_output_html</span><span class='layout'>)</span>
-<a name="line-115"></a>      <span class='keyglyph'>]</span>
-<a name="line-116"></a>    <span class='keyword'>where</span>
-<a name="line-117"></a>    <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
-<a name="line-118"></a>
-<a name="line-119"></a><span class='comment'>-- |</span>
-<a name="line-120"></a><span class='comment'>-- commonly useful options</span>
-<a name="line-121"></a><span class='comment'>--</span>
-<a name="line-122"></a><span class='comment'>-- defines options: 'a_verbose', 'a_help'</span>
-<a name="line-123"></a>
-<a name="line-124"></a><a name="generalOptions"></a><span class='definition'>generalOptions</span> 	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-125"></a><span class='definition'>generalOptions</span>
-<a name="line-126"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"v"</span>	<span class='keyglyph'>[</span><span class='varid'>a_verbose</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_verbose</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"verbose output"</span>
-<a name="line-127"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"h?"</span>	<span class='keyglyph'>[</span><span class='varid'>a_help</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_help</span><span class='layout'>,</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"this message"</span>
-<a name="line-128"></a>      <span class='keyglyph'>]</span>
-<a name="line-129"></a>
-<a name="line-130"></a><span class='comment'>-- |</span>
-<a name="line-131"></a><span class='comment'>-- defines 'a_version' option</span>
-<a name="line-132"></a>
-<a name="line-133"></a><a name="versionOptions"></a><span class='definition'>versionOptions</span> 	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-134"></a><span class='definition'>versionOptions</span>
-<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"V"</span>	<span class='keyglyph'>[</span><span class='varid'>a_version</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_version</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"show program version"</span>
-<a name="line-136"></a>      <span class='keyglyph'>]</span>
-<a name="line-137"></a>
-<a name="line-138"></a><span class='comment'>-- |</span>
-<a name="line-139"></a><span class='comment'>-- debug output options</span>
-<a name="line-140"></a>
-<a name="line-141"></a><a name="showOptions"></a><span class='definition'>showOptions</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-142"></a><span class='definition'>showOptions</span>
-<a name="line-143"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_show_tree</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_show_tree</span><span class='layout'>,</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"output tree representation instead of document source"</span>
-<a name="line-144"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_show_haskell</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_show_haskell</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"output internal Haskell representation instead of document source"</span>
-<a name="line-145"></a>      <span class='keyglyph'>]</span>
-<a name="line-146"></a>
-<a name="line-147"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-80"></a>
+<a name="line-81"></a><span class='comment'>-- | available Relax NG validation options</span>
+<a name="line-82"></a><span class='comment'>--</span>
+<a name="line-83"></a><span class='comment'>-- defines options</span>
+<a name="line-84"></a><span class='comment'>-- 'a_check_restrictions', 'a_validate_externalRef', 'a_validate_include', 'a_do_not_check_restrictions',  </span>
+<a name="line-85"></a><span class='comment'>-- 'a_do_not_validate_externalRef', 'a_do_not_validate_include'</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="relaxOptions"></a><span class='definition'>relaxOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-88"></a><span class='definition'>relaxOptions</span>    
+<a name="line-89"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"X"</span> <span class='keyglyph'>[</span><span class='varid'>a_relax_schema</span><span class='keyglyph'>]</span>	        	<span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_relax_schema</span><span class='layout'>)</span> <span class='str'>"SCHEMA"</span><span class='layout'>)</span>	<span class='str'>"validation with Relax NG, SCHEMA is the URI for the Relax NG schema"</span>
+<a name="line-90"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_check_restrictions</span><span class='keyglyph'>]</span>	        <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_check_restrictions</span><span class='layout'>,</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"check Relax NG schema restrictions during schema simplification (default)"</span>
+<a name="line-91"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_do_not_check_restrictions</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_check_restrictions</span><span class='layout'>,</span>    <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"do not check Relax NG schema restrictions"</span>
+<a name="line-92"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_validate_externalRef</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>  <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"validate a Relax NG schema referenced by a externalRef-Pattern (default)"</span>
+<a name="line-93"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate_externalRef</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>  <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"do not validate a Relax NG schema referenced by an externalRef-Pattern"</span>
+<a name="line-94"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_validate_include</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_include</span><span class='layout'>,</span>      <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"validate a Relax NG schema referenced by an include-Pattern (default)"</span>
+<a name="line-95"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>  <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate_include</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_include</span><span class='layout'>,</span>      <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>   <span class='str'>"do not validate a Relax NG schema referenced by an include-Pattern"</span>
+<a name="line-96"></a>	<span class='comment'>{-
+<a name="line-97"></a>      , Option ""  [a_output_changes]			(NoArg (a_output_changes,        v_1))	"output Pattern transformations in case of an error"    
+<a name="line-98"></a>      , Option ""  [a_do_not_collect_errors]     	(NoArg (a_do_not_collect_errors, v_1))	"stop Relax NG simplification after the first error has occurred"
+<a name="line-99"></a>	-}</span>
+<a name="line-100"></a>      <span class='keyglyph'>]</span>
+<a name="line-101"></a>    <span class='keyword'>where</span>
+<a name="line-102"></a>    <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-103"></a>
+<a name="line-104"></a><span class='comment'>-- |</span>
+<a name="line-105"></a><span class='comment'>-- commonly useful options for XML output</span>
+<a name="line-106"></a><span class='comment'>--</span>
+<a name="line-107"></a><span class='comment'>-- defines options: 'a_indent', 'a_output_encoding', 'a_output_file', 'a_output_html'</span>
+<a name="line-108"></a>
+<a name="line-109"></a><a name="outputOptions"></a><span class='definition'>outputOptions</span> 	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-110"></a><span class='definition'>outputOptions</span>
+<a name="line-111"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"i"</span>	<span class='keyglyph'>[</span><span class='varid'>a_indent</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_indent</span>                <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"indent XML output for readability"</span>
+<a name="line-112"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"o"</span>	<span class='keyglyph'>[</span><span class='varid'>a_output_encoding</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_encoding</span><span class='layout'>)</span> <span class='str'>"CHARSET"</span><span class='layout'>)</span>	<span class='layout'>(</span> <span class='str'>"encoding of output ("</span> <span class='varop'>++</span> <span class='varid'>utf8</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>isoLatin1</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>usAscii</span> <span class='varop'>++</span> <span class='str'>")"</span> <span class='layout'>)</span>
+<a name="line-113"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"f"</span>	<span class='keyglyph'>[</span><span class='varid'>a_output_file</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_file</span><span class='layout'>)</span>        <span class='str'>"FILE"</span><span class='layout'>)</span>	<span class='str'>"output file for resulting document (default: stdout)"</span>
+<a name="line-114"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_output_html</span><span class='keyglyph'>]</span>	        <span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_html</span>           <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"output of none ASCII chars as HTMl entity references"</span>
+<a name="line-115"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>       <span class='keyglyph'>[</span><span class='varid'>a_no_xml_pi</span><span class='keyglyph'>]</span>	        <span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_no_xml_pi</span>             <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>      <span class='layout'>(</span><span class='str'>"output without &lt;?xml ...?&gt; processing instruction, useful in combination with --"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>a_output_html</span><span class='layout'>)</span>
+<a name="line-116"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>       <span class='keyglyph'>[</span><span class='varid'>a_no_empty_elements</span><span class='keyglyph'>]</span>   <span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_no_empty_elements</span>     <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>      <span class='str'>"output of empty elements done in format &lt;elem...&gt;&lt;/elem&gt; instead of &lt;elem/&gt;"</span>
+<a name="line-117"></a>      <span class='keyglyph'>]</span>
+<a name="line-118"></a>    <span class='keyword'>where</span>
+<a name="line-119"></a>    <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-120"></a>
+<a name="line-121"></a><span class='comment'>-- |</span>
+<a name="line-122"></a><span class='comment'>-- commonly useful options</span>
+<a name="line-123"></a><span class='comment'>--</span>
+<a name="line-124"></a><span class='comment'>-- defines options: 'a_verbose', 'a_help'</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="generalOptions"></a><span class='definition'>generalOptions</span> 	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-127"></a><span class='definition'>generalOptions</span>
+<a name="line-128"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"v"</span>	<span class='keyglyph'>[</span><span class='varid'>a_verbose</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_verbose</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"verbose output"</span>
+<a name="line-129"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"h?"</span>	<span class='keyglyph'>[</span><span class='varid'>a_help</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_help</span><span class='layout'>,</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"this message"</span>
+<a name="line-130"></a>      <span class='keyglyph'>]</span>
+<a name="line-131"></a>
+<a name="line-132"></a><span class='comment'>-- |</span>
+<a name="line-133"></a><span class='comment'>-- defines 'a_version' option</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="versionOptions"></a><span class='definition'>versionOptions</span> 	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-136"></a><span class='definition'>versionOptions</span>
+<a name="line-137"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"V"</span>	<span class='keyglyph'>[</span><span class='varid'>a_version</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_version</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"show program version"</span>
+<a name="line-138"></a>      <span class='keyglyph'>]</span>
+<a name="line-139"></a>
+<a name="line-140"></a><span class='comment'>-- |</span>
+<a name="line-141"></a><span class='comment'>-- debug output options</span>
+<a name="line-142"></a>
+<a name="line-143"></a><a name="showOptions"></a><span class='definition'>showOptions</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-144"></a><span class='definition'>showOptions</span>
+<a name="line-145"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_show_tree</span><span class='keyglyph'>]</span>		<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_show_tree</span><span class='layout'>,</span>    <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"output tree representation instead of document source"</span>
+<a name="line-146"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_show_haskell</span><span class='keyglyph'>]</span>	<span class='layout'>(</span><span class='conid'>NoArg</span>  <span class='layout'>(</span><span class='varid'>a_show_haskell</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='str'>"output internal Haskell representation instead of document source"</span>
+<a name="line-147"></a>      <span class='keyglyph'>]</span>
 <a name="line-148"></a>
-<a name="line-149"></a><span class='comment'>-- |</span>
-<a name="line-150"></a><span class='comment'>-- select options from a predefined list of option desciptions</span>
-<a name="line-151"></a>
-<a name="line-152"></a><a name="selectOptions"></a><span class='definition'>selectOptions</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-153"></a><span class='definition'>selectOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>
-<a name="line-154"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>on</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Option</span> <span class='keyword'>_</span> <span class='varid'>ons</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>on</span> <span class='varop'>`elem`</span> <span class='varid'>ons</span><span class='layout'>)</span> <span class='varid'>os</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ol</span>
-<a name="line-155"></a>
-<a name="line-156"></a><a name="removeOptions"></a><span class='definition'>removeOptions</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-157"></a><span class='definition'>removeOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>
-<a name="line-158"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Option</span> <span class='keyword'>_</span> <span class='varid'>ons</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>ol</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ons</span> <span class='layout'>)</span> <span class='varid'>os</span>
-<a name="line-159"></a>
-<a name="line-160"></a><span class='comment'>-- |</span>
-<a name="line-161"></a><span class='comment'>-- check whether an option is set</span>
-<a name="line-162"></a><span class='comment'>--</span>
-<a name="line-163"></a><span class='comment'>-- reads the value of an attribute, usually applied to a document root node,</span>
-<a name="line-164"></a><span class='comment'>-- and checks if the value represents True. The following strings are interpreted</span>
-<a name="line-165"></a><span class='comment'>-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".</span>
-<a name="line-166"></a>
-<a name="line-167"></a><a name="optionIsSet"></a><span class='definition'>optionIsSet</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-168"></a><span class='definition'>optionIsSet</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>isTrueValue</span> <span class='varop'>.</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>n</span>
-<a name="line-169"></a>
-<a name="line-170"></a><span class='comment'>-- | check whether a string represents True</span>
-<a name="line-171"></a><span class='comment'>--</span>
-<a name="line-172"></a><span class='comment'>-- definition:</span>
+<a name="line-149"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-150"></a>
+<a name="line-151"></a><span class='comment'>-- |</span>
+<a name="line-152"></a><span class='comment'>-- select options from a predefined list of option desciptions</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="selectOptions"></a><span class='definition'>selectOptions</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-155"></a><span class='definition'>selectOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>
+<a name="line-156"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>on</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Option</span> <span class='keyword'>_</span> <span class='varid'>ons</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>on</span> <span class='varop'>`elem`</span> <span class='varid'>ons</span><span class='layout'>)</span> <span class='varid'>os</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ol</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="removeOptions"></a><span class='definition'>removeOptions</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-159"></a><span class='definition'>removeOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>
+<a name="line-160"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Option</span> <span class='keyword'>_</span> <span class='varid'>ons</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>ol</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ons</span> <span class='layout'>)</span> <span class='varid'>os</span>
+<a name="line-161"></a>
+<a name="line-162"></a><span class='comment'>-- |</span>
+<a name="line-163"></a><span class='comment'>-- check whether an option is set</span>
+<a name="line-164"></a><span class='comment'>--</span>
+<a name="line-165"></a><span class='comment'>-- reads the value of an attribute, usually applied to a document root node,</span>
+<a name="line-166"></a><span class='comment'>-- and checks if the value represents True. The following strings are interpreted</span>
+<a name="line-167"></a><span class='comment'>-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="optionIsSet"></a><span class='definition'>optionIsSet</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-170"></a><span class='definition'>optionIsSet</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>isTrueValue</span> <span class='varop'>.</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>n</span>
+<a name="line-171"></a>
+<a name="line-172"></a><span class='comment'>-- | check whether a string represents True</span>
 <a name="line-173"></a><span class='comment'>--</span>
-<a name="line-174"></a><span class='comment'>-- &gt; isTrueValue	= (`elem` ["1", "True", "true", "Yes", "yes"])</span>
-<a name="line-175"></a>
-<a name="line-176"></a><a name="isTrueValue"></a><span class='definition'>isTrueValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-177"></a><span class='definition'>isTrueValue</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"1"</span><span class='layout'>,</span> <span class='str'>"True"</span><span class='layout'>,</span> <span class='str'>"true"</span><span class='layout'>,</span> <span class='str'>"Yes"</span><span class='layout'>,</span> <span class='str'>"yes"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-178"></a>
-<a name="line-179"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-174"></a><span class='comment'>-- definition:</span>
+<a name="line-175"></a><span class='comment'>--</span>
+<a name="line-176"></a><span class='comment'>-- &gt; isTrueValue	= (`elem` ["1", "True", "true", "Yes", "yes"])</span>
+<a name="line-177"></a>
+<a name="line-178"></a><a name="isTrueValue"></a><span class='definition'>isTrueValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-179"></a><span class='definition'>isTrueValue</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"1"</span><span class='layout'>,</span> <span class='str'>"True"</span><span class='layout'>,</span> <span class='str'>"true"</span><span class='layout'>,</span> <span class='str'>"Yes"</span><span class='layout'>,</span> <span class='str'>"yes"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-180"></a>
+<a name="line-181"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hdoc/src/Text-XML-HXT-DOM-XmlTreeTypes.html
deleted file mode 100644
--- a/doc/hdoc/src/Text-XML-HXT-DOM-XmlTreeTypes.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
-<title>Haskell Code by HsColour</title>
-<link type='text/css' rel='stylesheet' href='hscolour.css' />
-</head>
-<body>
-<pre><a name="line-1"></a><span class='comment'>-- |</span>
-<a name="line-2"></a><span class='comment'>-- exports the core data types</span>
-<a name="line-3"></a><span class='comment'>-- and some additional types and functions</span>
-<a name="line-4"></a><span class='comment'>-- for compatibility with none arrow modules</span>
-<a name="line-5"></a><span class='comment'>--</span>
-<a name="line-6"></a><span class='comment'>-- Version : $Id: XmlTreeTypes.hs,v 1.6 2006/05/09 15:30:43 hxml Exp $</span>
-<a name="line-7"></a>
-<a name="line-8"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlTreeTypes</span>
-<a name="line-9"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>Filter</span>
-<a name="line-10"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-11"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlTreeTypes</span>
-<a name="line-12"></a>    <span class='layout'>)</span>
-<a name="line-13"></a>
-<a name="line-14"></a><span class='keyword'>where</span>
-<a name="line-15"></a>
-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>Filter</span>
-<a name="line-17"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='comment'>-- aliases for compatiblility reasons</span>
-<a name="line-20"></a>
-<a name="line-21"></a><a name="mkNode"></a><span class='definition'>mkNode</span>		<span class='keyglyph'>::</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTrees</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>node</span>
-<a name="line-22"></a><span class='definition'>mkNode</span>		<span class='keyglyph'>=</span> <span class='varid'>mkTree</span>
-<a name="line-23"></a>
-<a name="line-24"></a><a name="formatNTree"></a><span class='definition'>formatNTree</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-25"></a><span class='definition'>formatNTree</span>	<span class='keyglyph'>=</span> <span class='varid'>formatTree</span>
-<a name="line-26"></a>
-<a name="line-27"></a><a name="foldNTree"></a><span class='definition'>foldNTree</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span>
-<a name="line-28"></a><span class='definition'>foldNTree</span> 	<span class='keyglyph'>=</span> <span class='varid'>foldTree</span>
-<a name="line-29"></a>
-<a name="line-30"></a><a name="mapNTree"></a><span class='definition'>mapNTree</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>b</span>
-<a name="line-31"></a><span class='definition'>mapNTree</span> 	<span class='keyglyph'>=</span> <span class='varid'>fmap</span>
-<a name="line-32"></a>
-<a name="line-33"></a><a name="nTreeToList"></a><span class='definition'>nTreeToList</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
-<a name="line-34"></a><span class='definition'>nTreeToList</span>	<span class='keyglyph'>=</span> <span class='varid'>nodesTree</span>
-<a name="line-35"></a>
-<a name="line-36"></a><a name="depthNTree"></a><span class='definition'>depthNTree</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
-<a name="line-37"></a><span class='definition'>depthNTree</span>	<span class='keyglyph'>=</span> <span class='varid'>depthTree</span>
-<a name="line-38"></a>
-<a name="line-39"></a><a name="cardNTree"></a><span class='definition'>cardNTree</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
-<a name="line-40"></a><span class='definition'>cardNTree</span>	<span class='keyglyph'>=</span> <span class='varid'>cardNTree</span>
-<a name="line-41"></a>
-<a name="line-42"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-43"></a><span class='comment'>--</span>
-<a name="line-44"></a><span class='comment'>-- Basic types for filters</span>
-<a name="line-45"></a>
-<a name="line-46"></a><span class='comment'>-- | A functions that takes a node and returns a list of nodes</span>
-<a name="line-47"></a>
-<a name="line-48"></a><a name="XmlFilter"></a><span class='keyword'>type</span> <span class='conid'>XmlFilter</span>	<span class='keyglyph'>=</span> <span class='conid'>TFilter</span>  <span class='conid'>XNode</span>
-<a name="line-49"></a>
-<a name="line-50"></a><span class='comment'>-- | A function that takes a list of nodes and returns a list of nodes</span>
-<a name="line-51"></a>
-<a name="line-52"></a><a name="XmlSFilter"></a><span class='keyword'>type</span> <span class='conid'>XmlSFilter</span>	<span class='keyglyph'>=</span> <span class='conid'>TSFilter</span> <span class='conid'>XNode</span>
-<a name="line-53"></a>
-<a name="line-54"></a>
-<a name="line-55"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-56"></a><span class='comment'>--</span>
-<a name="line-57"></a>
-<a name="line-58"></a><a name="TagName"></a><span class='comment'>-- | Tag name</span>
-<a name="line-59"></a><a name="TagName"></a><span class='keyword'>type</span> <span class='conid'>TagName</span>	<span class='keyglyph'>=</span> <span class='conid'>QName</span>
-<a name="line-60"></a>
-<a name="line-61"></a><a name="AttrName"></a><span class='comment'>-- | Attribute name</span>
-<a name="line-62"></a><a name="AttrName"></a><span class='keyword'>type</span> <span class='conid'>AttrName</span>	<span class='keyglyph'>=</span> <span class='conid'>QName</span>
-<a name="line-63"></a>
-<a name="line-64"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-65"></a>
-<a name="line-66"></a><span class='comment'>-- | shortcut for 'qualifiedName'</span>
-<a name="line-67"></a>
-<a name="line-68"></a><a name="tName"></a><span class='definition'>tName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-69"></a><span class='definition'>tName</span>	<span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span>
-<a name="line-70"></a>
-<a name="line-71"></a><span class='comment'>-- | shortcut for 'qualifiedName'</span>
-<a name="line-72"></a>
-<a name="line-73"></a><a name="aName"></a><span class='definition'>aName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-74"></a><span class='definition'>aName</span>	<span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span>
-<a name="line-75"></a>
-<a name="line-76"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-77"></a>
-</pre></body>
-</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html b/doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html
--- a/doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html
+++ b/doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html
@@ -7,84 +7,104 @@
 </head>
 <body>
 <pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-2"></a><span class='comment'>--</span>
-<a name="line-3"></a><span class='comment'>-- GET for local file access</span>
-<a name="line-4"></a><span class='comment'>--</span>
-<a name="line-5"></a><span class='comment'>-- Version : $Id: GetFILE.hs,v 1.6 2006/09/04 06:03:03 hxml Exp $</span>
-<a name="line-6"></a>
-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</span>
-<a name="line-8"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</span>
-<a name="line-9"></a>    <span class='layout'>)</span>
-<a name="line-10"></a>
-<a name="line-11"></a><span class='keyword'>where</span>
-<a name="line-12"></a>
-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
-<a name="line-14"></a>    <span class='layout'>(</span> <span class='conid'>IOMode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-15"></a>    <span class='layout'>,</span> <span class='varid'>openFile</span>
-<a name="line-16"></a>    <span class='comment'>-- , getContents  is defined in the prelude</span>
-<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>hGetContents</span>
-<a name="line-18"></a>    <span class='layout'>)</span>
-<a name="line-19"></a>
-<a name="line-20"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span>
-<a name="line-21"></a>    <span class='layout'>(</span> <span class='varid'>ioeGetErrorString</span>
-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>try</span>
-<a name="line-23"></a>    <span class='layout'>)</span>
+<a name="line-2"></a>
+<a name="line-3"></a><span class='comment'>{- |
+<a name="line-4"></a>   Module     : Text.XML.HXT.IO.GetFILE
+<a name="line-5"></a>   Copyright  : Copyright (C) 2008 Uwe Schmidt
+<a name="line-6"></a>   License    : MIT
+<a name="line-7"></a>
+<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-9"></a>   Stability  : stable
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   The GET method for file protocol
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>getStdinCont</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>getCont</span>
+<a name="line-21"></a>    <span class='layout'>)</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='keyword'>where</span>
 <a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>
-<a name="line-26"></a>    <span class='layout'>(</span> <span class='varid'>doesFileExist</span>
-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>getPermissions</span>
-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>readable</span>
-<a name="line-29"></a>    <span class='layout'>)</span>
-<a name="line-30"></a>
-<a name="line-31"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-32"></a>
-<a name="line-33"></a><a name="getStdinCont"></a><span class='definition'>getStdinCont</span>		<span class='keyglyph'>::</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-34"></a><span class='definition'>getStdinCont</span>
-<a name="line-35"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-36"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-37"></a>		 <span class='varid'>getContents</span>
-<a name="line-38"></a>	       <span class='layout'>)</span>
-<a name="line-39"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>readErr</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-40"></a>    <span class='keyword'>where</span>
-<a name="line-41"></a>    <span class='varid'>readErr</span> <span class='varid'>e</span>
-<a name="line-42"></a>	<span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"system error when reading from stdin: "</span>
-<a name="line-43"></a>		 <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
-<a name="line-44"></a>	       <span class='layout'>)</span>
-<a name="line-45"></a>
-<a name="line-46"></a><a name="getCont"></a><span class='definition'>getCont</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-47"></a><span class='definition'>getCont</span> <span class='varid'>source</span>
-<a name="line-48"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>			<span class='comment'>-- preliminary</span>
-<a name="line-49"></a>      <span class='varid'>exists</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>doesFileExist</span> <span class='varid'>source'</span>
-<a name="line-50"></a>      <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varid'>exists</span>
-<a name="line-51"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='str'>"file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source'</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-52"></a>	 <span class='keyword'>else</span> <span class='keyword'>do</span>
-<a name="line-53"></a>	      <span class='varid'>perm</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPermissions</span> <span class='varid'>source'</span>
-<a name="line-54"></a>	      <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>readable</span> <span class='varid'>perm</span><span class='layout'>)</span>
-<a name="line-55"></a>	         <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='str'>"file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source'</span> <span class='varop'>++</span> <span class='str'>" not readable"</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-56"></a>	         <span class='keyword'>else</span> <span class='keyword'>do</span>
-<a name="line-57"></a>		      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-58"></a>				 <span class='varid'>h</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>source'</span> <span class='conid'>ReadMode</span>
-<a name="line-59"></a>				 <span class='varid'>hGetContents</span> <span class='varid'>h</span>
-<a name="line-60"></a>			       <span class='layout'>)</span>
-<a name="line-61"></a>		      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>readErr</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-62"></a>    <span class='keyword'>where</span>
-<a name="line-63"></a>    <span class='comment'>-- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source</span>
-<a name="line-64"></a>    <span class='varid'>source'</span> <span class='keyglyph'>=</span> <span class='varid'>drivePath</span> <span class='varop'>$</span> <span class='varid'>source</span>
-<a name="line-65"></a>    <span class='varid'>readErr</span> <span class='varid'>e</span>
-<a name="line-66"></a>	<span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"system error when reading file "</span>
-<a name="line-67"></a>		 <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source</span>
-<a name="line-68"></a>		 <span class='varop'>++</span> <span class='str'>": "</span>
-<a name="line-69"></a>		 <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
-<a name="line-70"></a>	       <span class='layout'>)</span>
-<a name="line-71"></a>
-<a name="line-72"></a>    <span class='comment'>-- remove leading / if file starts with windows drive letter, e.g. /c:/windows -&gt; c:/windows</span>
-<a name="line-73"></a>    <span class='varid'>drivePath</span> <span class='layout'>(</span><span class='chr'>'/'</span> <span class='conop'>:</span> <span class='varid'>file</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>d</span> <span class='conop'>:</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='sel'>_more</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-74"></a>	<span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'A'</span><span class='keyglyph'>..</span><span class='chr'>'Z'</span><span class='keyglyph'>]</span> <span class='varop'>||</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'a'</span><span class='keyglyph'>..</span><span class='chr'>'z'</span><span class='keyglyph'>]</span>
-<a name="line-75"></a>	    <span class='keyglyph'>=</span> <span class='varid'>file</span>
-<a name="line-76"></a>    <span class='varid'>drivePath</span> <span class='varid'>file</span>
-<a name="line-77"></a>	<span class='keyglyph'>=</span> <span class='varid'>file</span>
-<a name="line-78"></a>
-<a name="line-79"></a>
-<a name="line-80"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-25"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span>        <span class='keyword'>as</span> <span class='conid'>B</span>
+<a name="line-26"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span><span class='varop'>.</span><span class='conid'>Char8</span>  <span class='keyword'>as</span> <span class='conid'>C</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='keyword'>import</span>           <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>		<span class='layout'>(</span> <span class='conid'>IOMode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-29"></a>					<span class='layout'>,</span> <span class='varid'>openFile</span>
+<a name="line-30"></a>					  <span class='comment'>-- , getContents  is defined in the prelude</span>
+<a name="line-31"></a>					<span class='layout'>,</span> <span class='varid'>hGetContents</span>
+<a name="line-32"></a>					<span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>import</span>           <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span>	<span class='layout'>(</span> <span class='varid'>ioeGetErrorString</span>
+<a name="line-35"></a>					<span class='layout'>,</span> <span class='varid'>try</span>
+<a name="line-36"></a>					<span class='layout'>)</span>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='keyword'>import</span>           <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>	<span class='layout'>(</span> <span class='varid'>doesFileExist</span>
+<a name="line-39"></a>					<span class='layout'>,</span> <span class='varid'>getPermissions</span>
+<a name="line-40"></a>					<span class='layout'>,</span> <span class='varid'>readable</span>
+<a name="line-41"></a>					<span class='layout'>)</span>
+<a name="line-42"></a>
+<a name="line-43"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="getStdinCont"></a><span class='definition'>getStdinCont</span>		<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-46"></a><span class='definition'>getStdinCont</span> <span class='varid'>strictInput</span>
+<a name="line-47"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-48"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>strictInput</span>
+<a name="line-49"></a>		 <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-50"></a>		      <span class='varid'>cb</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>B</span><span class='varop'>.</span><span class='varid'>getContents</span>
+<a name="line-51"></a>		      <span class='varid'>return</span>  <span class='layout'>(</span><span class='conid'>C</span><span class='varop'>.</span><span class='varid'>unpack</span> <span class='varid'>cb</span><span class='layout'>)</span>
+<a name="line-52"></a>		 <span class='keyword'>else</span> <span class='varid'>getContents</span>
+<a name="line-53"></a>	       <span class='layout'>)</span>
+<a name="line-54"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>readErr</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-55"></a>    <span class='keyword'>where</span>
+<a name="line-56"></a>    <span class='varid'>readErr</span> <span class='varid'>e</span>
+<a name="line-57"></a>	<span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"system error when reading from stdin: "</span>
+<a name="line-58"></a>		 <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
+<a name="line-59"></a>	       <span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="getCont"></a><span class='definition'>getCont</span>		<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-62"></a><span class='definition'>getCont</span> <span class='varid'>strictInput</span> <span class='varid'>source</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>			<span class='comment'>-- preliminary</span>
+<a name="line-64"></a>      <span class='varid'>exists</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>doesFileExist</span> <span class='varid'>source'</span>
+<a name="line-65"></a>      <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varid'>exists</span>
+<a name="line-66"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='str'>"file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source'</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-67"></a>	 <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-68"></a>	      <span class='varid'>perm</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPermissions</span> <span class='varid'>source'</span>
+<a name="line-69"></a>	      <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>readable</span> <span class='varid'>perm</span><span class='layout'>)</span>
+<a name="line-70"></a>	         <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='str'>"file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source'</span> <span class='varop'>++</span> <span class='str'>" not readable"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-71"></a>	         <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-72"></a>		      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>strictInput</span>
+<a name="line-73"></a>				 <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-74"></a>				      <span class='varid'>cb</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>B</span><span class='varop'>.</span><span class='varid'>readFile</span> <span class='varid'>source</span>
+<a name="line-75"></a>				      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>C</span><span class='varop'>.</span><span class='varid'>unpack</span> <span class='varid'>cb</span><span class='layout'>)</span>
+<a name="line-76"></a>				 <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-77"></a>				      <span class='varid'>h</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>source'</span> <span class='conid'>ReadMode</span>
+<a name="line-78"></a>				      <span class='varid'>hGetContents</span> <span class='varid'>h</span>
+<a name="line-79"></a>			       <span class='layout'>)</span>
+<a name="line-80"></a>		      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>readErr</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-81"></a>    <span class='keyword'>where</span>
+<a name="line-82"></a>
+<a name="line-83"></a>    <span class='comment'>-- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source</span>
+<a name="line-84"></a>    <span class='varid'>source'</span> <span class='keyglyph'>=</span> <span class='varid'>drivePath</span> <span class='varop'>$</span> <span class='varid'>source</span>
+<a name="line-85"></a>    <span class='varid'>readErr</span> <span class='varid'>e</span>
+<a name="line-86"></a>	<span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"system error when reading file "</span>
+<a name="line-87"></a>		 <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source</span>
+<a name="line-88"></a>		 <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-89"></a>		 <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
+<a name="line-90"></a>	       <span class='layout'>)</span>
+<a name="line-91"></a>
+<a name="line-92"></a>    <span class='comment'>-- remove leading / if file starts with windows drive letter, e.g. /c:/windows -&gt; c:/windows</span>
+<a name="line-93"></a>    <span class='varid'>drivePath</span> <span class='layout'>(</span><span class='chr'>'/'</span> <span class='conop'>:</span> <span class='varid'>file</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>d</span> <span class='conop'>:</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='sel'>_more</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-94"></a>	<span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'A'</span><span class='keyglyph'>..</span><span class='chr'>'Z'</span><span class='keyglyph'>]</span> <span class='varop'>||</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'a'</span><span class='keyglyph'>..</span><span class='chr'>'z'</span><span class='keyglyph'>]</span>
+<a name="line-95"></a>	    <span class='keyglyph'>=</span> <span class='varid'>file</span>
+<a name="line-96"></a>    <span class='varid'>drivePath</span> <span class='varid'>file</span>
+<a name="line-97"></a>	<span class='keyglyph'>=</span> <span class='varid'>file</span>
+<a name="line-98"></a>
+<a name="line-99"></a>
+<a name="line-100"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html b/doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html
--- a/doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html
@@ -10,7 +10,7 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.Parser.TagSoup
-<a name="line-5"></a>   Copyright  : Copyright (C) 2005 Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
@@ -31,461 +31,429 @@
 <a name="line-23"></a>
 <a name="line-24"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-25"></a>
-<a name="line-26"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span> <span class='layout'>(</span><span class='varid'>toLower</span><span class='layout'>)</span>
-<a name="line-27"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-28"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>
-<a name="line-29"></a>
-<a name="line-30"></a>
-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span><span class='varop'>.</span><span class='conid'>Entity</span>
-<a name="line-33"></a>    <span class='layout'>(</span> <span class='varid'>lookupNumericEntity</span>
-<a name="line-34"></a>    <span class='layout'>)</span>
-<a name="line-35"></a>
-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
-<a name="line-37"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>
-<a name="line-38"></a>    <span class='layout'>)</span>
-<a name="line-39"></a>
-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</span>
-<a name="line-41"></a>    <span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</span>
-<a name="line-42"></a>    <span class='layout'>)</span>
-<a name="line-43"></a>
-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>
-<a name="line-45"></a>    <span class='layout'>(</span> <span class='comment'>-- xmlEntities</span>
-<a name="line-46"></a>    <span class='layout'>)</span>
-<a name="line-47"></a>
-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>
-<a name="line-49"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span>
-<a name="line-50"></a>    <span class='layout'>)</span>
-<a name="line-51"></a>
-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>
-<a name="line-53"></a>    <span class='layout'>(</span> <span class='varid'>isEmptyHtmlTag</span>
-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>
-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>
-<a name="line-56"></a>    <span class='layout'>)</span>
-<a name="line-57"></a>
-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
-<a name="line-59"></a>    <span class='layout'>(</span> <span class='conid'>XmlTrees</span>
-<a name="line-60"></a>    <span class='layout'>,</span> <span class='conid'>QName</span>
-<a name="line-61"></a>    <span class='layout'>,</span> <span class='conid'>NsEnv</span>
-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>mkQName</span>
-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>mkName</span>
-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>mkPrefixLocalPart</span>
-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>c_warn</span>
-<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>a_xml</span>
-<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>a_xmlns</span>
-<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>xmlNamespace</span>
-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>
-<a name="line-70"></a>    <span class='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span> <span class='layout'>(</span><span class='varid'>toLower</span><span class='layout'>)</span>
+<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span>
+<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span><span class='varop'>.</span><span class='conid'>Entity</span>		<span class='layout'>(</span> <span class='varid'>lookupNumericEntity</span>
+<a name="line-31"></a>					<span class='layout'>)</span>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>		<span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>
+<a name="line-33"></a>					<span class='layout'>)</span>
+<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>	<span class='layout'>(</span> <span class='varid'>isEmptyHtmlTag</span>
+<a name="line-35"></a>					<span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>
+<a name="line-36"></a>					<span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>
+<a name="line-37"></a>					<span class='layout'>)</span>
+<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>
+<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>	<span class='layout'>(</span> <span class='conid'>XmlTrees</span>
+<a name="line-40"></a>					<span class='layout'>,</span> <span class='conid'>QName</span>
+<a name="line-41"></a>					<span class='layout'>,</span> <span class='conid'>NsEnv</span>
+<a name="line-42"></a>					<span class='layout'>,</span> <span class='varid'>toNsEnv</span>
+<a name="line-43"></a>					<span class='layout'>,</span> <span class='varid'>newXName</span>
+<a name="line-44"></a>					<span class='layout'>,</span> <span class='varid'>nullXName</span>
+<a name="line-45"></a>					<span class='layout'>,</span> <span class='varid'>mkQName'</span>
+<a name="line-46"></a>					<span class='layout'>,</span> <span class='varid'>mkName</span>
+<a name="line-47"></a>					<span class='layout'>,</span> <span class='varid'>isWellformedQualifiedName</span>
+<a name="line-48"></a>					<span class='layout'>,</span> <span class='varid'>c_warn</span>
+<a name="line-49"></a>					<span class='layout'>,</span> <span class='varid'>a_xml</span>
+<a name="line-50"></a>					<span class='layout'>,</span> <span class='varid'>a_xmlns</span>
+<a name="line-51"></a>					<span class='layout'>,</span> <span class='varid'>xmlNamespace</span>
+<a name="line-52"></a>					<span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>
+<a name="line-53"></a>					<span class='layout'>)</span>
+<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>		<span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-55"></a>					<span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-56"></a>					<span class='layout'>,</span> <span class='varid'>mkCmt</span>
+<a name="line-57"></a>					<span class='layout'>,</span> <span class='varid'>mkText</span>
+<a name="line-58"></a>					<span class='layout'>,</span> <span class='varid'>mkElement</span>
+<a name="line-59"></a>					<span class='layout'>,</span> <span class='varid'>mkAttr</span>
+<a name="line-60"></a>					<span class='layout'>)</span>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='comment'>-- ---------------------------------------- </span>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='comment'>-- The name table contains the id map. All element and attribute names are stored</span>
+<a name="line-65"></a><span class='comment'>-- the first time they are ecountered, and later always this name is used,</span>
+<a name="line-66"></a><span class='comment'>-- not a string built by the parser.</span>
+<a name="line-67"></a>
+<a name="line-68"></a><a name="Tags"></a><span class='keyword'>type</span> <span class='conid'>Tags</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="Context"></a><span class='keyword'>type</span> <span class='conid'>Context</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>NsEnv</span><span class='layout'>)</span>
 <a name="line-71"></a>
-<a name="line-72"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
-<a name="line-73"></a>    <span class='layout'>(</span> <span class='varid'>isElem</span>
-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>mkCmt</span>
-<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>
-<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>mkElement</span>
-<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>
-<a name="line-79"></a>    <span class='layout'>)</span>
-<a name="line-80"></a>
-<a name="line-81"></a><span class='comment'>-- ---------------------------------------- </span>
+<a name="line-72"></a><a name="State"></a><span class='keyword'>type</span> <span class='conid'>State</span>		<span class='keyglyph'>=</span> <span class='conid'>Tags</span>
+<a name="line-73"></a>
+<a name="line-74"></a><a name="Parser"></a><span class='keyword'>newtype</span> <span class='conid'>Parser</span> <span class='varid'>a</span> 	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='layout'>{</span> <span class='varid'>parse</span> <span class='keyglyph'>::</span> <span class='conid'>State</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>State</span><span class='layout'>)</span><span class='layout'>}</span>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>Monad</span> <span class='conid'>Parser</span> <span class='keyword'>where</span>
+<a name="line-77"></a>    <span class='varid'>return</span> <span class='varid'>x</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-78"></a>    <span class='varid'>p</span> <span class='varop'>&gt;&gt;=</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-79"></a>			      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parse</span> <span class='varid'>p</span> <span class='varid'>ts</span>
+<a name="line-80"></a>                              <span class='keyword'>in</span>
+<a name="line-81"></a>			      <span class='varid'>parse</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='varid'>ts'</span>
 <a name="line-82"></a>
-<a name="line-83"></a><span class='comment'>-- The name table contains the id map. All element and attribute names are stored</span>
-<a name="line-84"></a><span class='comment'>-- the first time they are ecountered, and later always this name is used,</span>
-<a name="line-85"></a><span class='comment'>-- not a string built by the parser.</span>
-<a name="line-86"></a>
-<a name="line-87"></a><a name="Tags"></a><span class='keyword'>type</span> <span class='conid'>Tags</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>
-<a name="line-88"></a>
-<a name="line-89"></a><a name="NameTable"></a><span class='keyword'>type</span> <span class='conid'>NameTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>QName</span> <span class='conid'>QName</span>
-<a name="line-90"></a>
-<a name="line-91"></a><a name="Context"></a><span class='keyword'>type</span> <span class='conid'>Context</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>NsEnv</span><span class='layout'>)</span>
+<a name="line-83"></a><a name="runParser"></a><span class='definition'>runParser</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Tags</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-84"></a><span class='definition'>runParser</span> <span class='varid'>p</span> <span class='varid'>ts</span>	<span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='varid'>ts</span>
+<a name="line-85"></a>
+<a name="line-86"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-87"></a>
+<a name="line-88"></a><a name="cond"></a><span class='definition'>cond</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span>
+<a name="line-89"></a><span class='definition'>cond</span> <span class='varid'>c</span> <span class='varid'>t</span> <span class='varid'>e</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-90"></a>		  <span class='varid'>p</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>c</span>
+<a name="line-91"></a>		  <span class='keyword'>if</span> <span class='varid'>p</span> <span class='keyword'>then</span> <span class='varid'>t</span> <span class='keyword'>else</span> <span class='varid'>e</span>
 <a name="line-92"></a>
-<a name="line-93"></a><a name="State"></a><span class='keyword'>data</span> <span class='conid'>State</span>	<span class='keyglyph'>=</span> <span class='conid'>S</span> <span class='varop'>!</span><span class='conid'>Tags</span> <span class='varop'>!</span><span class='conid'>NameTable</span>		<span class='comment'>-- the name table must be evaluated striktly, else a stack overflow occurs</span>
-<a name="line-94"></a>
-<a name="line-95"></a><a name="Parser"></a><span class='keyword'>newtype</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='layout'>{</span> <span class='varid'>parse</span> <span class='keyglyph'>::</span> <span class='conid'>State</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>State</span><span class='layout'>)</span><span class='layout'>}</span>
-<a name="line-96"></a>
-<a name="line-97"></a><span class='keyword'>instance</span> <span class='conid'>Monad</span> <span class='conid'>Parser</span> <span class='keyword'>where</span>
-<a name="line-98"></a>    <span class='varid'>return</span> <span class='varid'>x</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>ts</span><span class='layout'>)</span>
-<a name="line-99"></a>    <span class='varid'>p</span> <span class='varop'>&gt;&gt;=</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
-<a name="line-100"></a>			      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parse</span> <span class='varid'>p</span> <span class='varid'>ts</span>
-<a name="line-101"></a>                              <span class='keyword'>in</span>
-<a name="line-102"></a>			      <span class='varid'>parse</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='varid'>ts'</span>
-<a name="line-103"></a>
-<a name="line-104"></a><a name="runParser"></a><span class='definition'>runParser</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Tags</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
-<a name="line-105"></a><span class='definition'>runParser</span> <span class='varid'>p</span> <span class='varid'>ts</span>	<span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='conid'>S</span> <span class='varid'>ts</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>
-<a name="line-106"></a>
-<a name="line-107"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-108"></a>
-<a name="line-109"></a><a name="cond"></a><span class='definition'>cond</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span>
-<a name="line-110"></a><span class='definition'>cond</span> <span class='varid'>c</span> <span class='varid'>t</span> <span class='varid'>e</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-111"></a>		  <span class='varid'>p</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>c</span>
-<a name="line-112"></a>		  <span class='keyword'>if</span> <span class='varid'>p</span> <span class='keyword'>then</span> <span class='varid'>t</span> <span class='keyword'>else</span> <span class='varid'>e</span>
+<a name="line-93"></a><a name="lookAhead"></a><span class='definition'>lookAhead</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-94"></a><span class='definition'>lookAhead</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-95"></a>
+<a name="line-96"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-97"></a><span class='comment'>-- primitive look ahead tests</span>
+<a name="line-98"></a>
+<a name="line-99"></a><a name="isEof"></a><span class='definition'>isEof</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-100"></a><span class='definition'>isEof</span>		<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="isText"></a><span class='definition'>isText</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-103"></a><span class='definition'>isText</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-104"></a>		  <span class='keyword'>where</span>
+<a name="line-105"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-106"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-107"></a>
+<a name="line-108"></a><a name="isCmt"></a><span class='definition'>isCmt</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-109"></a><span class='definition'>isCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-110"></a>		  <span class='keyword'>where</span>
+<a name="line-111"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagComment</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-112"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>
 <a name="line-113"></a>
-<a name="line-114"></a><a name="lookAhead"></a><span class='definition'>lookAhead</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-115"></a><span class='definition'>lookAhead</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>S</span> <span class='varid'>ts</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ts</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-116"></a>
-<a name="line-117"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-118"></a><span class='comment'>-- primitive look ahead tests</span>
+<a name="line-114"></a><a name="isWarn"></a><span class='definition'>isWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-115"></a><span class='definition'>isWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-116"></a>		  <span class='keyword'>where</span>
+<a name="line-117"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagWarning</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-118"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>
 <a name="line-119"></a>
-<a name="line-120"></a><a name="isEof"></a><span class='definition'>isEof</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-121"></a><span class='definition'>isEof</span>		<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>S</span> <span class='varid'>ts</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ts</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-122"></a>
-<a name="line-123"></a><a name="isText"></a><span class='definition'>isText</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-124"></a><span class='definition'>isText</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
-<a name="line-125"></a>		  <span class='keyword'>where</span>
-<a name="line-126"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-127"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-128"></a>
-<a name="line-129"></a><a name="isCmt"></a><span class='definition'>isCmt</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-130"></a><span class='definition'>isCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
-<a name="line-131"></a>		  <span class='keyword'>where</span>
-<a name="line-132"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagComment</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-133"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-134"></a>
-<a name="line-135"></a><a name="isWarn"></a><span class='definition'>isWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-136"></a><span class='definition'>isWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
-<a name="line-137"></a>		  <span class='keyword'>where</span>
-<a name="line-138"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagWarning</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-139"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-120"></a><a name="isPos"></a><span class='definition'>isPos</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-121"></a><span class='definition'>isPos</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-122"></a>		  <span class='keyword'>where</span>
+<a name="line-123"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagPosition</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-124"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="isCls"></a><span class='definition'>isCls</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-127"></a><span class='definition'>isCls</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-128"></a>		  <span class='keyword'>where</span>
+<a name="line-129"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-130"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		  <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="isOpn"></a><span class='definition'>isOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
+<a name="line-133"></a><span class='definition'>isOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-134"></a>		  <span class='keyword'>where</span>
+<a name="line-135"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-136"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		   <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-137"></a>
+<a name="line-138"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-139"></a><span class='comment'>-- primitive symbol parsers</span>
 <a name="line-140"></a>
-<a name="line-141"></a><a name="isPos"></a><span class='definition'>isPos</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-142"></a><span class='definition'>isPos</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
-<a name="line-143"></a>		  <span class='keyword'>where</span>
-<a name="line-144"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagPosition</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-145"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-146"></a>
-<a name="line-147"></a><a name="isCls"></a><span class='definition'>isCls</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-148"></a><span class='definition'>isCls</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
-<a name="line-149"></a>		  <span class='keyword'>where</span>
-<a name="line-150"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-151"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		  <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-152"></a>
-<a name="line-153"></a><a name="isOpn"></a><span class='definition'>isOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>
-<a name="line-154"></a><span class='definition'>isOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
-<a name="line-155"></a>		  <span class='keyword'>where</span>
-<a name="line-156"></a>		  <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-157"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		   <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-158"></a>
-<a name="line-159"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-160"></a><span class='comment'>-- primitive symbol parsers</span>
-<a name="line-161"></a>
-<a name="line-162"></a><a name="getTag"></a><span class='definition'>getTag</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Tag</span>
-<a name="line-163"></a><span class='definition'>getTag</span>		<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>S</span> <span class='layout'>(</span><span class='varid'>t1</span><span class='conop'>:</span><span class='varid'>ts1</span><span class='layout'>)</span> <span class='varid'>nt</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>t1</span><span class='layout'>,</span> <span class='conid'>S</span> <span class='varid'>ts1</span> <span class='varid'>nt</span><span class='layout'>)</span>
-<a name="line-164"></a>
-<a name="line-165"></a><a name="getSym"></a><span class='definition'>getSym</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span>
-<a name="line-166"></a><span class='definition'>getSym</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-167"></a>		  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTag</span>
-<a name="line-168"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>t</span><span class='layout'>)</span>
-<a name="line-169"></a>
-<a name="line-170"></a><a name="getText"></a><span class='definition'>getText</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
-<a name="line-171"></a><span class='definition'>getText</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
-<a name="line-172"></a>    		  <span class='keyword'>where</span>
-<a name="line-173"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varid'>t</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>t</span>
-<a name="line-174"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
-<a name="line-175"></a>
-<a name="line-176"></a><a name="getCmt"></a><span class='definition'>getCmt</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
-<a name="line-177"></a><span class='definition'>getCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
-<a name="line-178"></a>		  <span class='keyword'>where</span>
-<a name="line-179"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagComment</span> <span class='varid'>c</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>c</span>
-<a name="line-180"></a>	  	  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
-<a name="line-181"></a>
-<a name="line-182"></a><a name="getWarn"></a><span class='definition'>getWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
-<a name="line-183"></a><span class='definition'>getWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
-<a name="line-184"></a>	  	  <span class='keyword'>where</span>
-<a name="line-185"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagWarning</span> <span class='varid'>w</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>w</span>
-<a name="line-186"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-141"></a><a name="getTag"></a><span class='definition'>getTag</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Tag</span>
+<a name="line-142"></a><span class='definition'>getTag</span>		<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>t1</span><span class='conop'>:</span><span class='varid'>ts1</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>t1</span><span class='layout'>,</span> <span class='varid'>ts1</span><span class='layout'>)</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="getSym"></a><span class='definition'>getSym</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span>
+<a name="line-145"></a><span class='definition'>getSym</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-146"></a>		  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTag</span>
+<a name="line-147"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-148"></a>
+<a name="line-149"></a><a name="getText"></a><span class='definition'>getText</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-150"></a><span class='definition'>getText</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-151"></a>    		  <span class='keyword'>where</span>
+<a name="line-152"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varid'>t</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>t</span>
+<a name="line-153"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-154"></a>
+<a name="line-155"></a><a name="getCmt"></a><span class='definition'>getCmt</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-156"></a><span class='definition'>getCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-157"></a>		  <span class='keyword'>where</span>
+<a name="line-158"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagComment</span> <span class='varid'>c</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>c</span>
+<a name="line-159"></a>	  	  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="getWarn"></a><span class='definition'>getWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-162"></a><span class='definition'>getWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-163"></a>	  	  <span class='keyword'>where</span>
+<a name="line-164"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagWarning</span> <span class='varid'>w</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>w</span>
+<a name="line-165"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="getPos"></a><span class='definition'>getPos</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span>
+<a name="line-168"></a><span class='definition'>getPos</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-169"></a>		  <span class='keyword'>where</span>
+<a name="line-170"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagPosition</span> <span class='varid'>l</span> <span class='varid'>c</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>l</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-171"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-172"></a>
+<a name="line-173"></a><a name="getCls"></a><span class='definition'>getCls</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-174"></a><span class='definition'>getCls</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-175"></a>		  <span class='keyword'>where</span>
+<a name="line-176"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-177"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="getOpn"></a><span class='definition'>getOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span><span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-180"></a><span class='definition'>getOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-181"></a>		  <span class='keyword'>where</span>
+<a name="line-182"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-183"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-186"></a><span class='comment'>-- pushback parsers for inserting missing tags</span>
 <a name="line-187"></a>
-<a name="line-188"></a><a name="getPos"></a><span class='definition'>getPos</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span>
-<a name="line-189"></a><span class='definition'>getPos</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
-<a name="line-190"></a>		  <span class='keyword'>where</span>
-<a name="line-191"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagPosition</span> <span class='varid'>l</span> <span class='varid'>c</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>l</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-192"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-188"></a><a name="pushBack"></a><span class='definition'>pushBack</span>	<span class='keyglyph'>::</span> <span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
+<a name="line-189"></a><span class='definition'>pushBack</span> <span class='varid'>t</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>()</span><span class='layout'>,</span> <span class='varid'>t</span><span class='conop'>:</span><span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-190"></a>
+<a name="line-191"></a><a name="insCls"></a><span class='definition'>insCls</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
+<a name="line-192"></a><span class='definition'>insCls</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>pushBack</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>n</span><span class='layout'>)</span>
 <a name="line-193"></a>
-<a name="line-194"></a><a name="getCls"></a><span class='definition'>getCls</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
-<a name="line-195"></a><span class='definition'>getCls</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
-<a name="line-196"></a>		  <span class='keyword'>where</span>
-<a name="line-197"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
-<a name="line-198"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
-<a name="line-199"></a>
-<a name="line-200"></a><a name="getOpn"></a><span class='definition'>getOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span><span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-201"></a><span class='definition'>getOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
-<a name="line-202"></a>		  <span class='keyword'>where</span>
-<a name="line-203"></a>		  <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-204"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
-<a name="line-205"></a>
-<a name="line-206"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-207"></a><span class='comment'>-- pushback parsers for inserting missing tags</span>
-<a name="line-208"></a>
-<a name="line-209"></a><a name="pushBack"></a><span class='definition'>pushBack</span>	<span class='keyglyph'>::</span> <span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
-<a name="line-210"></a><span class='definition'>pushBack</span> <span class='varid'>t</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>S</span> <span class='varid'>ts</span> <span class='varid'>nt</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>()</span><span class='layout'>,</span> <span class='conid'>S</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>nt</span><span class='layout'>)</span>
-<a name="line-211"></a>
-<a name="line-212"></a><a name="insCls"></a><span class='definition'>insCls</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
-<a name="line-213"></a><span class='definition'>insCls</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>pushBack</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-214"></a>
-<a name="line-215"></a><a name="insOpn"></a><span class='definition'>insOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
-<a name="line-216"></a><span class='definition'>insOpn</span> <span class='varid'>n</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>pushBack</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>
-<a name="line-217"></a>
-<a name="line-218"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-194"></a><a name="insOpn"></a><span class='definition'>insOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
+<a name="line-195"></a><span class='definition'>insOpn</span> <span class='varid'>n</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>pushBack</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-196"></a>
+<a name="line-197"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-198"></a>
+<a name="line-199"></a><a name="mkQN"></a><span class='definition'>mkQN</span>		<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>QName</span>
+<a name="line-200"></a><span class='definition'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='varid'>isAttr</span> <span class='varid'>env</span> <span class='varid'>s</span>
+<a name="line-201"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>
+<a name="line-202"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>qn1</span>
+<a name="line-203"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-204"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>qn0</span>
+<a name="line-205"></a>    <span class='keyword'>where</span>
+<a name="line-206"></a>    <span class='varid'>qn1</span>
+<a name="line-207"></a>	<span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isSimpleName</span>	<span class='keyglyph'>=</span> <span class='varid'>s'</span>
+<a name="line-208"></a>	<span class='keyglyph'>|</span> <span class='varid'>isSimpleName</span>			<span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>nullXName</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='varid'>nullXName</span><span class='layout'>)</span>
+<a name="line-209"></a>	<span class='keyglyph'>|</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>px'</span>        <span class='varid'>lp'</span>         <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='varid'>px'</span><span class='layout'>)</span>
+<a name="line-210"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>s'</span>
+<a name="line-211"></a>    <span class='varid'>qn0</span>					<span class='keyglyph'>=</span> <span class='varid'>s'</span>
+<a name="line-212"></a>
+<a name="line-213"></a>    <span class='varid'>nsUri</span> <span class='varid'>x</span>				<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>nullXName</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>x</span> <span class='varop'>$</span> <span class='varid'>env</span>
+<a name="line-214"></a>    <span class='varid'>isSimpleName</span>			<span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-215"></a>    <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>span</span><span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-216"></a>    <span class='varid'>px'</span>                 		<span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>px</span>
+<a name="line-217"></a>    <span class='varid'>lp'</span>                 		<span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>lp</span>
+<a name="line-218"></a>    <span class='varid'>s'</span>                                  <span class='keyglyph'>=</span> <span class='varid'>mkName</span>   <span class='varid'>s</span>
 <a name="line-219"></a>
-<a name="line-220"></a><a name="insertQName"></a><span class='definition'>insertQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>QName</span>
-<a name="line-221"></a><span class='definition'>insertQName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>S</span> <span class='varid'>ts</span> <span class='varid'>nt</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
-<a name="line-222"></a>				     <span class='layout'>(</span><span class='varid'>n'</span><span class='layout'>,</span> <span class='varid'>nt'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>insert</span> <span class='varid'>n</span> <span class='varid'>nt</span>
-<a name="line-223"></a>				     <span class='keyword'>in</span>
-<a name="line-224"></a>				     <span class='layout'>(</span><span class='varid'>n'</span><span class='layout'>,</span> <span class='conid'>S</span> <span class='varid'>ts</span> <span class='varid'>nt'</span><span class='layout'>)</span>
-<a name="line-225"></a>		  <span class='keyword'>where</span>
-<a name="line-226"></a>		  <span class='varid'>insert</span> <span class='varid'>s</span> <span class='varid'>nt</span>
-<a name="line-227"></a>		      <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>r</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>r</span><span class='layout'>,</span> <span class='varid'>nt</span><span class='layout'>)</span>
-<a name="line-228"></a>		      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>nt</span><span class='layout'>)</span>
-<a name="line-229"></a>		      <span class='keyword'>where</span>
-<a name="line-230"></a>		      <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varid'>nt</span>
-<a name="line-231"></a>
-<a name="line-232"></a><a name="mkQN"></a><span class='definition'>mkQN</span>		<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>QName</span>
-<a name="line-233"></a><span class='definition'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='varid'>isAttr</span> <span class='varid'>env</span> <span class='varid'>s</span>
-<a name="line-234"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>
-<a name="line-235"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertQName</span> <span class='varid'>qn1</span>
-<a name="line-236"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-237"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertQName</span> <span class='varid'>qn0</span>
-<a name="line-238"></a>    <span class='keyword'>where</span>
-<a name="line-239"></a>    <span class='varid'>qn1</span>
-<a name="line-240"></a>	<span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isSimpleName</span>	<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>
-<a name="line-241"></a>	<span class='keyglyph'>|</span> <span class='varid'>isSimpleName</span>			<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='str'>""</span><span class='layout'>)</span>
-<a name="line-242"></a>	<span class='keyglyph'>|</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='varid'>px</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='varid'>px</span><span class='layout'>)</span>
-<a name="line-243"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>
-<a name="line-244"></a>    <span class='varid'>qn0</span>
-<a name="line-245"></a>	<span class='keyglyph'>|</span> <span class='varid'>isSimpleName</span>			<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>
-<a name="line-246"></a>	<span class='keyglyph'>|</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>
-<a name="line-247"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>
-<a name="line-248"></a>
-<a name="line-249"></a>    <span class='varid'>nsUri</span> <span class='varid'>x</span>		<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>x</span> <span class='varop'>$</span> <span class='varid'>env</span>
-<a name="line-250"></a>    <span class='varid'>isSimpleName</span>	<span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-251"></a>    <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>span</span><span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-252"></a>
-<a name="line-253"></a><a name="extendNsEnv"></a><span class='definition'>extendNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
-<a name="line-254"></a><span class='definition'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env</span>
-<a name="line-255"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>
-<a name="line-256"></a>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addNs</span><span class='layout'>)</span> <span class='varid'>al1</span> <span class='varop'>++</span> <span class='varid'>env</span>
-<a name="line-257"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-258"></a>	<span class='keyglyph'>=</span> <span class='varid'>env</span>
-<a name="line-259"></a>    <span class='keyword'>where</span>
-<a name="line-260"></a>    <span class='varid'>addNs</span> <span class='varid'>n</span> <span class='varid'>v</span>
-<a name="line-261"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
-<a name="line-262"></a>	  <span class='varop'>&amp;&amp;</span>
-<a name="line-263"></a>	  <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>lp</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>tail</span> <span class='varop'>$</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-264"></a>	    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>lp</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-265"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-266"></a>	    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-267"></a>	<span class='keyword'>where</span>
-<a name="line-268"></a>	<span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>n</span>
-<a name="line-269"></a>
-<a name="line-270"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-271"></a>
-<a name="line-272"></a><span class='comment'>-- own entity lookup to prevent problems with &amp;amp; and tagsoup hack for IE</span>
-<a name="line-273"></a>
-<a name="line-274"></a><a name="lookupEntity"></a><span class='definition'>lookupEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>
-<a name="line-275"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='sel'>_asHtml</span> <span class='varid'>e0</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='chr'>'#'</span><span class='conop'>:</span><span class='varid'>e</span><span class='layout'>)</span>
-<a name="line-276"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>lookupNumericEntity</span> <span class='varid'>e</span> <span class='keyword'>of</span>
-<a name="line-277"></a>      <span class='conid'>Just</span> <span class='varid'>c</span>  <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span> <span class='conid'>TagText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>]</span>
-<a name="line-278"></a>      <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</span> <span class='varop'>++</span> <span class='varid'>e0</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='conop'>:</span>
-<a name="line-279"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>
-<a name="line-280"></a>		 <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='conid'>TagWarning</span> <span class='varop'>$</span> <span class='str'>"illegal char reference: &amp;"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='keyglyph'>]</span>
-<a name="line-281"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-220"></a><a name="extendNsEnv"></a><span class='definition'>extendNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>
+<a name="line-221"></a><span class='definition'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env</span>
+<a name="line-222"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>
+<a name="line-223"></a>	<span class='keyglyph'>=</span> <span class='varid'>toNsEnv</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addNs</span><span class='layout'>)</span> <span class='varid'>al1</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>env</span>
+<a name="line-224"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-225"></a>	<span class='keyglyph'>=</span> <span class='varid'>env</span>
+<a name="line-226"></a>    <span class='keyword'>where</span>
+<a name="line-227"></a>    <span class='varid'>addNs</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-228"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
+<a name="line-229"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-230"></a>	  <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>lp</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>tail</span> <span class='varop'>$</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-231"></a>	    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>lp</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-232"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-233"></a>	    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-234"></a>	<span class='keyword'>where</span>
+<a name="line-235"></a>	<span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-236"></a>
+<a name="line-237"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-238"></a>
+<a name="line-239"></a><span class='comment'>-- own entity lookup to prevent problems with &amp;amp; and tagsoup hack for IE</span>
+<a name="line-240"></a>
+<a name="line-241"></a><a name="lookupEntity"></a><span class='definition'>lookupEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>
+<a name="line-242"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='sel'>_asHtml</span> <span class='varid'>e0</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='chr'>'#'</span><span class='conop'>:</span><span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-243"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>lookupNumericEntity</span> <span class='varid'>e</span> <span class='keyword'>of</span>
+<a name="line-244"></a>      <span class='conid'>Just</span> <span class='varid'>c</span>  <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span> <span class='conid'>TagText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>]</span>
+<a name="line-245"></a>      <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</span> <span class='varop'>++</span> <span class='varid'>e0</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='conop'>:</span>
+<a name="line-246"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>
+<a name="line-247"></a>		 <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='conid'>TagWarning</span> <span class='varop'>$</span> <span class='str'>"illegal char reference: &amp;"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='keyglyph'>]</span>
+<a name="line-248"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-249"></a>
+<a name="line-250"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span> <span class='varid'>e</span>
+<a name="line-251"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>e</span> <span class='varid'>entities</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-252"></a>      <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span> <span class='conid'>TagText</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-253"></a>      <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='conop'>:</span>
+<a name="line-254"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>
+<a name="line-255"></a>		 <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='conid'>TagWarning</span> <span class='varop'>$</span> <span class='str'>"Unknown entity reference: &amp;"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='keyglyph'>]</span>
+<a name="line-256"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-257"></a>    <span class='keyword'>where</span>
+<a name="line-258"></a>    <span class='varid'>entities</span>
+<a name="line-259"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>    <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-260"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span> <span class='comment'>-- xmlEntities (TODO: xhtml is xml and html)</span>
+<a name="line-261"></a>
+<a name="line-262"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-263"></a>
+<a name="line-264"></a><span class='comment'>-- |</span>
+<a name="line-265"></a><span class='comment'>-- Turns all element and attribute names to lower case</span>
+<a name="line-266"></a><span class='comment'>-- even !DOCTYPE stuff. But this is discarded when parsing the tagsoup</span>
+<a name="line-267"></a>
+<a name="line-268"></a><a name="lowerCaseNames"></a><span class='definition'>lowerCaseNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>
+<a name="line-269"></a><span class='definition'>lowerCaseNames</span>
+<a name="line-270"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>f</span>
+<a name="line-271"></a>    <span class='keyword'>where</span>
+<a name="line-272"></a>    <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>name</span> <span class='varid'>attrs</span><span class='layout'>)</span>
+<a name="line-273"></a>        <span class='keyglyph'>=</span> <span class='conid'>TagOpen</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>attrToLower</span> <span class='varid'>attrs</span><span class='layout'>)</span>
+<a name="line-274"></a>    <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='conid'>TagClose</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-276"></a>    <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span>
+<a name="line-277"></a>    <span class='varid'>nameToLower</span>          <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span>
+<a name="line-278"></a>    <span class='varid'>attrToLower</span> <span class='layout'>(</span><span class='varid'>an</span><span class='layout'>,</span> <span class='varid'>av</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>an</span><span class='layout'>,</span> <span class='varid'>av</span><span class='layout'>)</span>
+<a name="line-279"></a>
+<a name="line-280"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-281"></a><span class='comment'>-- the main parser</span>
 <a name="line-282"></a>
-<a name="line-283"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span> <span class='varid'>e</span>
-<a name="line-284"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>e</span> <span class='varid'>entities</span><span class='layout'>)</span> <span class='keyword'>of</span>
-<a name="line-285"></a>      <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span> <span class='conid'>TagText</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
-<a name="line-286"></a>      <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='conop'>:</span>
-<a name="line-287"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>
-<a name="line-288"></a>		 <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='conid'>TagWarning</span> <span class='varop'>$</span> <span class='str'>"Unknown entity reference: &amp;"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='keyglyph'>]</span>
-<a name="line-289"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>
-<a name="line-290"></a>    <span class='keyword'>where</span>
-<a name="line-291"></a>    <span class='varid'>entities</span>
-<a name="line-292"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>    <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span>
-<a name="line-293"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span> <span class='comment'>-- xmlEntities (TODO: xhtml is xml and html)</span>
-<a name="line-294"></a>
-<a name="line-295"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-296"></a>
-<a name="line-297"></a><span class='comment'>-- |</span>
-<a name="line-298"></a><span class='comment'>-- Turns all element and attribute names to lower case</span>
-<a name="line-299"></a><span class='comment'>-- even !DOCTYPE stuff. But this is discarded when parsing the tagsoup</span>
-<a name="line-300"></a>
-<a name="line-301"></a><a name="lowerCaseNames"></a><span class='definition'>lowerCaseNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>
-<a name="line-302"></a><span class='definition'>lowerCaseNames</span>
-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>f</span>
-<a name="line-304"></a>    <span class='keyword'>where</span>
-<a name="line-305"></a>    <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>name</span> <span class='varid'>attrs</span><span class='layout'>)</span>
-<a name="line-306"></a>        <span class='keyglyph'>=</span> <span class='conid'>TagOpen</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>attrToLower</span> <span class='varid'>attrs</span><span class='layout'>)</span>
-<a name="line-307"></a>    <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>name</span><span class='layout'>)</span>
-<a name="line-308"></a>	<span class='keyglyph'>=</span> <span class='conid'>TagClose</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>name</span><span class='layout'>)</span>
-<a name="line-309"></a>    <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span>
-<a name="line-310"></a>    <span class='varid'>nameToLower</span>          <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span>
-<a name="line-311"></a>    <span class='varid'>attrToLower</span> <span class='layout'>(</span><span class='varid'>an</span><span class='layout'>,</span> <span class='varid'>av</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>an</span><span class='layout'>,</span> <span class='varid'>av</span><span class='layout'>)</span>
-<a name="line-312"></a>
-<a name="line-313"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-314"></a><span class='comment'>-- the main parser</span>
-<a name="line-315"></a>
-<a name="line-316"></a><a name="parseHtmlTagSoup"></a><span class='definition'>parseHtmlTagSoup</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
-<a name="line-317"></a><span class='definition'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>withComment</span> <span class='varid'>removeWhiteSpace</span> <span class='varid'>asHtml</span> <span class='varid'>doc</span>
-<a name="line-318"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>docRootElem</span>
-<a name="line-319"></a>	<span class='varop'>.</span> <span class='varid'>runParser</span> <span class='layout'>(</span><span class='varid'>buildCont</span> <span class='varid'>initContext</span><span class='layout'>)</span>
-<a name="line-320"></a>	<span class='varop'>.</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span>
-<a name="line-321"></a>	    <span class='keyword'>then</span> <span class='varid'>lowerCaseNames</span>
-<a name="line-322"></a>	    <span class='keyword'>else</span> <span class='varid'>id</span>
-<a name="line-323"></a>	  <span class='layout'>)</span>
-<a name="line-324"></a>	<span class='varop'>.</span> <span class='varid'>parseTagsOptions</span> <span class='layout'>(</span><span class='varid'>parseOptions</span> <span class='layout'>{</span> <span class='varid'>optTagWarning</span>   <span class='keyglyph'>=</span> <span class='varid'>withWarnings</span>
-<a name="line-325"></a>					 <span class='layout'>,</span> <span class='varid'>optLookupEntity</span> <span class='keyglyph'>=</span> <span class='varid'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span>
-<a name="line-326"></a>					 <span class='layout'>}</span>
-<a name="line-327"></a>			   <span class='layout'>)</span>
-<a name="line-328"></a>      <span class='layout'>)</span>
-<a name="line-329"></a>    <span class='keyword'>where</span>
-<a name="line-330"></a>    <span class='comment'>-- This is essential for lasy parsing:</span>
-<a name="line-331"></a>    <span class='comment'>-- the call of "take 1" stops parsing, when the first element is detected</span>
-<a name="line-332"></a>    <span class='comment'>-- no check on end of input sequence is required to build this (0- or 1-element list)</span>
-<a name="line-333"></a>    <span class='comment'>-- so eof is never checked unneccessarily</span>
-<a name="line-334"></a>
-<a name="line-335"></a>    <span class='varid'>docRootElem</span>
-<a name="line-336"></a>	<span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isElem</span>
-<a name="line-337"></a>
-<a name="line-338"></a>    <span class='varid'>initContext</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>[]</span>
-<a name="line-339"></a>			  <span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_xml</span><span class='layout'>,</span>   <span class='varid'>xmlNamespace</span><span class='layout'>)</span>
-<a name="line-340"></a>			    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_xmlns</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>
-<a name="line-341"></a>			    <span class='keyglyph'>]</span>
-<a name="line-342"></a>			  <span class='layout'>)</span>
-<a name="line-343"></a>
-<a name="line-344"></a>    <span class='varid'>wrap</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-345"></a>
-<a name="line-346"></a>    <span class='varid'>warn</span>
-<a name="line-347"></a>	<span class='keyglyph'>|</span> <span class='varid'>withWarnings</span>	<span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>doc</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>" "</span> <span class='varop'>++</span><span class='layout'>)</span>
-<a name="line-348"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>
-<a name="line-349"></a>    <span class='varid'>cmt</span>
-<a name="line-350"></a>	<span class='keyglyph'>|</span> <span class='varid'>withComment</span>	<span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkCmt</span>
-<a name="line-351"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>
-<a name="line-352"></a>    <span class='varid'>txt</span>
-<a name="line-353"></a>	<span class='keyglyph'>|</span> <span class='varid'>removeWhiteSpace</span>
-<a name="line-354"></a>			<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-355"></a>			  <span class='keyword'>if</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span> <span class='varid'>t</span>
-<a name="line-356"></a>			  <span class='keyword'>then</span> <span class='conid'>[]</span>
-<a name="line-357"></a>			  <span class='keyword'>else</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>t</span>
-<a name="line-358"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span>
-<a name="line-359"></a>
-<a name="line-360"></a>    <span class='varid'>isEmptyElem</span>
-<a name="line-361"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isEmptyHtmlTag</span>
-<a name="line-362"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>False</span>
-<a name="line-363"></a>
-<a name="line-364"></a>    <span class='varid'>isInnerElem</span>
-<a name="line-365"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isInnerHtmlTagOf</span>
-<a name="line-366"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span>
-<a name="line-367"></a>
-<a name="line-368"></a>    <span class='varid'>closesElem</span>
-<a name="line-369"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='varid'>n1</span> <span class='keyglyph'>-&gt;</span>
-<a name="line-370"></a>			  <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ns</span><span class='layout'>)</span>
-<a name="line-371"></a>			  <span class='varop'>&amp;&amp;</span>
-<a name="line-372"></a>			  <span class='varid'>n1</span> <span class='varop'>`closesHtmlTag`</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ns</span><span class='layout'>)</span>
-<a name="line-373"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span>
-<a name="line-374"></a>
-<a name="line-375"></a>    <span class='varid'>buildCont</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
-<a name="line-376"></a>    <span class='varid'>buildCont</span> <span class='varid'>ns</span>
-<a name="line-377"></a>	<span class='keyglyph'>=</span> <span class='varid'>cond</span> <span class='varid'>isText</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-378"></a>			<span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getText</span>
-<a name="line-379"></a>			<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
-<a name="line-380"></a>			<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>
-<a name="line-381"></a>		      <span class='layout'>)</span>
-<a name="line-382"></a>	  <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isOpn</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-383"></a>			 <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getOpn</span>
-<a name="line-384"></a>			 <span class='varid'>openTag</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='varid'>al</span>
-<a name="line-385"></a>		       <span class='layout'>)</span>
-<a name="line-386"></a>	    <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isCls</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-387"></a>			   <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCls</span>
-<a name="line-388"></a>			   <span class='varid'>closeTag</span> <span class='varid'>ns</span> <span class='varid'>n</span>
-<a name="line-389"></a>			 <span class='layout'>)</span>
-<a name="line-390"></a>	      <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isCmt</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-391"></a>			     <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCmt</span>
-<a name="line-392"></a>			     <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
-<a name="line-393"></a>			     <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>cmt</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>
-<a name="line-394"></a>			   <span class='layout'>)</span>
-<a name="line-395"></a>		<span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isWarn</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-396"></a>				<span class='varid'>w</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getWarn</span>
-<a name="line-397"></a>				<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
-<a name="line-398"></a>				<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>w</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>
-<a name="line-399"></a>			      <span class='layout'>)</span>
-<a name="line-400"></a>		  <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isPos</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-401"></a>				 <span class='varid'>getPos</span>
-<a name="line-402"></a>				 <span class='varid'>buildCont</span> <span class='varid'>ns</span>
-<a name="line-403"></a>			       <span class='layout'>)</span>
-<a name="line-404"></a>		    <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isEof</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-405"></a>				   <span class='varid'>isEof</span>
-<a name="line-406"></a>				   <span class='varid'>closeAll</span> <span class='varid'>ns</span>
-<a name="line-407"></a>				 <span class='layout'>)</span>
-<a name="line-408"></a>		      <span class='layout'>(</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='str'>"parse error in tagsoup tree construction"</span><span class='layout'>)</span>
-<a name="line-409"></a>		      <span class='layout'>)</span>
-<a name="line-410"></a>		    <span class='layout'>)</span>
-<a name="line-411"></a>		  <span class='layout'>)</span>
-<a name="line-412"></a>		<span class='layout'>)</span>
-<a name="line-413"></a>	      <span class='layout'>)</span>
-<a name="line-414"></a>	    <span class='layout'>)</span>
-<a name="line-415"></a>	  <span class='layout'>)</span>
-<a name="line-416"></a>	<span class='keyword'>where</span>
-<a name="line-417"></a>	<span class='varid'>closeTag</span>		<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
-<a name="line-418"></a>	<span class='varid'>closeTag</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>
-<a name="line-419"></a>	    <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>==</span> <span class='varid'>n1</span>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>			<span class='comment'>-- a normal closing tag</span>
-<a name="line-420"></a>								<span class='comment'>-- all other cases try to repair wrong html</span>
-<a name="line-421"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>				<span class='comment'>-- n1 closes n implicitly</span>
-<a name="line-422"></a>	    <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>`isInnerElem`</span> <span class='varid'>n1</span>				<span class='comment'>-- e.g. &lt;td&gt;...&lt;/tr&gt;</span>
-<a name="line-423"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-424"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>			<span class='comment'>-- pushback &lt;/n1&gt;</span>
-<a name="line-425"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>			<span class='comment'>-- insert a &lt;/n'&gt;</span>
-<a name="line-426"></a>				  <span class='varid'>buildCont</span> <span class='varid'>ns'</span>			<span class='comment'>-- try again</span>
-<a name="line-427"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>
-<a name="line-428"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>	<span class='keyglyph'>=</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>			<span class='comment'>-- ignore a redundant closing tag for empty element</span>
-<a name="line-429"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='varid'>ns1'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>				<span class='comment'>-- insert a missing closing tag</span>
-<a name="line-430"></a>	    <span class='keyglyph'>|</span> <span class='varid'>n1</span> <span class='varop'>`elem`</span> <span class='varid'>ns1'</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-431"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>
-<a name="line-432"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>
-<a name="line-433"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>
-<a name="line-434"></a>				  <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"closing tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n'</span> <span class='varop'>++</span>
-<a name="line-435"></a>						 <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" found"</span><span class='layout'>)</span>
-<a name="line-436"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>
-<a name="line-437"></a>					 <span class='layout'>)</span>
-<a name="line-438"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>						<span class='comment'>-- ignore a wrong closing tag</span>
-<a name="line-439"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-440"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>
-<a name="line-441"></a>				  <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"no opening tag for closing tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span><span class='layout'>)</span>
-<a name="line-442"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>
-<a name="line-443"></a>					 <span class='layout'>)</span>
-<a name="line-444"></a>
-<a name="line-445"></a>	<span class='varid'>openTag</span>			<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
-<a name="line-446"></a>	<span class='varid'>openTag</span> <span class='varid'>cx'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ns'</span><span class='layout'>,</span><span class='varid'>env'</span><span class='layout'>)</span> <span class='varid'>n1</span> <span class='varid'>al1</span>
-<a name="line-447"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isPiDT</span> <span class='varid'>n1</span>		<span class='keyglyph'>=</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
-<a name="line-448"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>
-<a name="line-449"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-450"></a>				  <span class='varid'>qn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>
-<a name="line-451"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>
-<a name="line-452"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
-<a name="line-453"></a>				  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='varid'>al</span> <span class='conid'>[]</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>
-<a name="line-454"></a>	    <span class='keyglyph'>|</span> <span class='varid'>closesElem</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-455"></a>				  <span class='varid'>insOpn</span> <span class='varid'>n1</span> <span class='varid'>al1</span>
-<a name="line-456"></a>				  <span class='varid'>insCls</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ns'</span><span class='layout'>)</span>
-<a name="line-457"></a>				  <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
-<a name="line-458"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-459"></a>				  <span class='varid'>qn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>
-<a name="line-460"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>
-<a name="line-461"></a>				  <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n1</span> <span class='conop'>:</span> <span class='varid'>ns'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>nenv</span><span class='layout'>)</span>
-<a name="line-462"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
-<a name="line-463"></a>				  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='varid'>al</span> <span class='varid'>cs</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>
-<a name="line-464"></a>	    <span class='keyword'>where</span>
-<a name="line-465"></a>	    <span class='varid'>nenv</span>		<span class='keyglyph'>=</span> <span class='varid'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env'</span>
-<a name="line-466"></a>	    <span class='varid'>mkElemQN</span>		<span class='keyglyph'>=</span> <span class='varid'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='conid'>False</span>
-<a name="line-467"></a>	    <span class='varid'>mkAttrQN</span>		<span class='keyglyph'>=</span> <span class='varid'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='conid'>True</span>
-<a name="line-468"></a>	    <span class='varid'>isPiDT</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-469"></a>	    <span class='varid'>isPiDT</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-470"></a>	    <span class='varid'>isPiDT</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-471"></a>	    <span class='varid'>mkAttrs</span>		<span class='keyglyph'>=</span> <span class='varid'>mapM</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>mkA</span><span class='layout'>)</span>
-<a name="line-472"></a>	    <span class='varid'>mkA</span> <span class='varid'>an</span> <span class='varid'>av</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-473"></a>				  <span class='varid'>qan</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrQN</span> <span class='varid'>nenv</span> <span class='varid'>an</span>
-<a name="line-474"></a>				  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='varid'>qan</span> <span class='layout'>(</span><span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>av</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-475"></a>
-<a name="line-476"></a>	<span class='varid'>closeAll</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>NsEnv</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
-<a name="line-477"></a>	<span class='varid'>closeAll</span> <span class='layout'>(</span><span class='varid'>ns'</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>wrn</span> <span class='varid'>ns'</span><span class='layout'>)</span>
-<a name="line-478"></a>				  <span class='keyword'>where</span>
-<a name="line-479"></a>				  <span class='varid'>wrn</span> <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"insert missing closing tag "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span>
-<a name="line-480"></a>
-<a name="line-481"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-283"></a><a name="parseHtmlTagSoup"></a><span class='definition'>parseHtmlTagSoup</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-284"></a><span class='definition'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>withComment</span> <span class='varid'>removeWhiteSpace</span> <span class='varid'>asHtml</span> <span class='varid'>doc</span>
+<a name="line-285"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>docRootElem</span>
+<a name="line-286"></a>	<span class='varop'>.</span> <span class='varid'>runParser</span> <span class='layout'>(</span><span class='varid'>buildCont</span> <span class='varid'>initContext</span><span class='layout'>)</span>
+<a name="line-287"></a>	<span class='varop'>.</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span>
+<a name="line-288"></a>	    <span class='keyword'>then</span> <span class='varid'>lowerCaseNames</span>
+<a name="line-289"></a>	    <span class='keyword'>else</span> <span class='varid'>id</span>
+<a name="line-290"></a>	  <span class='layout'>)</span>
+<a name="line-291"></a>	<span class='varop'>.</span> <span class='varid'>parseTagsOptions</span> <span class='layout'>(</span><span class='varid'>parseOptions</span> <span class='layout'>{</span> <span class='varid'>optTagWarning</span>   <span class='keyglyph'>=</span> <span class='varid'>withWarnings</span>
+<a name="line-292"></a>					 <span class='layout'>,</span> <span class='varid'>optLookupEntity</span> <span class='keyglyph'>=</span> <span class='varid'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span>
+<a name="line-293"></a>					 <span class='layout'>}</span>
+<a name="line-294"></a>			   <span class='layout'>)</span>
+<a name="line-295"></a>      <span class='layout'>)</span>
+<a name="line-296"></a>    <span class='keyword'>where</span>
+<a name="line-297"></a>    <span class='comment'>-- This is essential for lasy parsing:</span>
+<a name="line-298"></a>    <span class='comment'>-- the call of "take 1" stops parsing, when the first element is detected</span>
+<a name="line-299"></a>    <span class='comment'>-- no check on end of input sequence is required to build this (0- or 1-element list)</span>
+<a name="line-300"></a>    <span class='comment'>-- so eof is never checked unneccessarily</span>
+<a name="line-301"></a>
+<a name="line-302"></a>    <span class='varid'>docRootElem</span>
+<a name="line-303"></a>	<span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isElem</span>
+<a name="line-304"></a>
+<a name="line-305"></a>    <span class='varid'>initContext</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>[]</span>
+<a name="line-306"></a>			  <span class='layout'>,</span> <span class='varid'>toNsEnv</span> <span class='varop'>$</span>
+<a name="line-307"></a>			    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_xml</span><span class='layout'>,</span>   <span class='varid'>xmlNamespace</span><span class='layout'>)</span>
+<a name="line-308"></a>			    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_xmlns</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>
+<a name="line-309"></a>			    <span class='keyglyph'>]</span>
+<a name="line-310"></a>			  <span class='layout'>)</span>
+<a name="line-311"></a>
+<a name="line-312"></a>    <span class='varid'>wrap</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-313"></a>
+<a name="line-314"></a>    <span class='varid'>warn</span>
+<a name="line-315"></a>	<span class='keyglyph'>|</span> <span class='varid'>withWarnings</span>	<span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>doc</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>" "</span> <span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-316"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>
+<a name="line-317"></a>    <span class='varid'>cmt</span>
+<a name="line-318"></a>	<span class='keyglyph'>|</span> <span class='varid'>withComment</span>	<span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkCmt</span>
+<a name="line-319"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>
+<a name="line-320"></a>    <span class='varid'>txt</span>
+<a name="line-321"></a>	<span class='keyglyph'>|</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-322"></a>			<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-323"></a>			  <span class='keyword'>if</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span> <span class='varid'>t</span>
+<a name="line-324"></a>			  <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-325"></a>			  <span class='keyword'>else</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-326"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span>
+<a name="line-327"></a>
+<a name="line-328"></a>    <span class='varid'>isEmptyElem</span>
+<a name="line-329"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isEmptyHtmlTag</span>
+<a name="line-330"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>False</span>
+<a name="line-331"></a>
+<a name="line-332"></a>    <span class='varid'>isInnerElem</span>
+<a name="line-333"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isInnerHtmlTagOf</span>
+<a name="line-334"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span>
+<a name="line-335"></a>
+<a name="line-336"></a>    <span class='varid'>closesElem</span>
+<a name="line-337"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='varid'>n1</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-338"></a>			  <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-339"></a>			  <span class='varop'>&amp;&amp;</span>
+<a name="line-340"></a>			  <span class='varid'>n1</span> <span class='varop'>`closesHtmlTag`</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-341"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span>
+<a name="line-342"></a>
+<a name="line-343"></a>    <span class='varid'>buildCont</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-344"></a>    <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-345"></a>	<span class='keyglyph'>=</span> <span class='varid'>cond</span> <span class='varid'>isText</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-346"></a>			<span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getText</span>
+<a name="line-347"></a>			<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-348"></a>			<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-349"></a>		      <span class='layout'>)</span>
+<a name="line-350"></a>	  <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isOpn</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-351"></a>			 <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getOpn</span>
+<a name="line-352"></a>			 <span class='varid'>openTag</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='varid'>al</span>
+<a name="line-353"></a>		       <span class='layout'>)</span>
+<a name="line-354"></a>	    <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isCls</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-355"></a>			   <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCls</span>
+<a name="line-356"></a>			   <span class='varid'>closeTag</span> <span class='varid'>ns</span> <span class='varid'>n</span>
+<a name="line-357"></a>			 <span class='layout'>)</span>
+<a name="line-358"></a>	      <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isCmt</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-359"></a>			     <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCmt</span>
+<a name="line-360"></a>			     <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-361"></a>			     <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>cmt</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-362"></a>			   <span class='layout'>)</span>
+<a name="line-363"></a>		<span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isWarn</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-364"></a>				<span class='varid'>w</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getWarn</span>
+<a name="line-365"></a>				<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-366"></a>				<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>w</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-367"></a>			      <span class='layout'>)</span>
+<a name="line-368"></a>		  <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isPos</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-369"></a>				 <span class='varid'>getPos</span>
+<a name="line-370"></a>				 <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-371"></a>			       <span class='layout'>)</span>
+<a name="line-372"></a>		    <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isEof</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-373"></a>				   <span class='varid'>isEof</span>
+<a name="line-374"></a>				   <span class='varid'>closeAll</span> <span class='varid'>ns</span>
+<a name="line-375"></a>				 <span class='layout'>)</span>
+<a name="line-376"></a>		      <span class='layout'>(</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='str'>"parse error in tagsoup tree construction"</span><span class='layout'>)</span>
+<a name="line-377"></a>		      <span class='layout'>)</span>
+<a name="line-378"></a>		    <span class='layout'>)</span>
+<a name="line-379"></a>		  <span class='layout'>)</span>
+<a name="line-380"></a>		<span class='layout'>)</span>
+<a name="line-381"></a>	      <span class='layout'>)</span>
+<a name="line-382"></a>	    <span class='layout'>)</span>
+<a name="line-383"></a>	  <span class='layout'>)</span>
+<a name="line-384"></a>	<span class='keyword'>where</span>
+<a name="line-385"></a>	<span class='varid'>closeTag</span>		<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-386"></a>	<span class='varid'>closeTag</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>
+<a name="line-387"></a>	    <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>==</span> <span class='varid'>n1</span>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>			<span class='comment'>-- a normal closing tag</span>
+<a name="line-388"></a>								<span class='comment'>-- all other cases try to repair wrong html</span>
+<a name="line-389"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>				<span class='comment'>-- n1 closes n implicitly</span>
+<a name="line-390"></a>	    <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>`isInnerElem`</span> <span class='varid'>n1</span>				<span class='comment'>-- e.g. &lt;td&gt;...&lt;/tr&gt;</span>
+<a name="line-391"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-392"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>			<span class='comment'>-- pushback &lt;/n1&gt;</span>
+<a name="line-393"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>			<span class='comment'>-- insert a &lt;/n'&gt;</span>
+<a name="line-394"></a>				  <span class='varid'>buildCont</span> <span class='varid'>ns'</span>			<span class='comment'>-- try again</span>
+<a name="line-395"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>
+<a name="line-396"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>	<span class='keyglyph'>=</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>			<span class='comment'>-- ignore a redundant closing tag for empty element</span>
+<a name="line-397"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='varid'>ns1'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>				<span class='comment'>-- insert a missing closing tag</span>
+<a name="line-398"></a>	    <span class='keyglyph'>|</span> <span class='varid'>n1</span> <span class='varop'>`elem`</span> <span class='varid'>ns1'</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-399"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>
+<a name="line-400"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>
+<a name="line-401"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>
+<a name="line-402"></a>				  <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"closing tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n'</span> <span class='varop'>++</span>
+<a name="line-403"></a>						 <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" found"</span><span class='layout'>)</span>
+<a name="line-404"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>
+<a name="line-405"></a>					 <span class='layout'>)</span>
+<a name="line-406"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>						<span class='comment'>-- ignore a wrong closing tag</span>
+<a name="line-407"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-408"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>
+<a name="line-409"></a>				  <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"no opening tag for closing tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span><span class='layout'>)</span>
+<a name="line-410"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>
+<a name="line-411"></a>					 <span class='layout'>)</span>
+<a name="line-412"></a>
+<a name="line-413"></a>	<span class='varid'>openTag</span>			<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-414"></a>	<span class='varid'>openTag</span> <span class='varid'>cx'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ns'</span><span class='layout'>,</span><span class='varid'>env'</span><span class='layout'>)</span> <span class='varid'>n1</span> <span class='varid'>al1</span>
+<a name="line-415"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isPiDT</span> <span class='varid'>n1</span>		<span class='keyglyph'>=</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-416"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>
+<a name="line-417"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-418"></a>				  <span class='varid'>qn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>
+<a name="line-419"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>
+<a name="line-420"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-421"></a>				  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='varid'>al</span> <span class='conid'>[]</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-422"></a>	    <span class='keyglyph'>|</span> <span class='varid'>closesElem</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-423"></a>				  <span class='varid'>insOpn</span> <span class='varid'>n1</span> <span class='varid'>al1</span>
+<a name="line-424"></a>				  <span class='varid'>insCls</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ns'</span><span class='layout'>)</span>
+<a name="line-425"></a>				  <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-426"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-427"></a>				  <span class='varid'>qn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>
+<a name="line-428"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>
+<a name="line-429"></a>				  <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n1</span> <span class='conop'>:</span> <span class='varid'>ns'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>nenv</span><span class='layout'>)</span>
+<a name="line-430"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-431"></a>				  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='varid'>al</span> <span class='varid'>cs</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-432"></a>	    <span class='keyword'>where</span>
+<a name="line-433"></a>	    <span class='varid'>nenv</span>		<span class='keyglyph'>=</span> <span class='varid'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env'</span>
+<a name="line-434"></a>	    <span class='varid'>mkElemQN</span>		<span class='keyglyph'>=</span> <span class='varid'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='conid'>False</span>
+<a name="line-435"></a>	    <span class='varid'>mkAttrQN</span>		<span class='keyglyph'>=</span> <span class='varid'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='conid'>True</span>
+<a name="line-436"></a>	    <span class='varid'>isPiDT</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-437"></a>	    <span class='varid'>isPiDT</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-438"></a>	    <span class='varid'>isPiDT</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-439"></a>	    <span class='varid'>mkAttrs</span>		<span class='keyglyph'>=</span> <span class='varid'>mapM</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>mkA</span><span class='layout'>)</span>
+<a name="line-440"></a>	    <span class='varid'>mkA</span> <span class='varid'>an</span> <span class='varid'>av</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-441"></a>				  <span class='varid'>qan</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrQN</span> <span class='varid'>nenv</span> <span class='varid'>an</span>
+<a name="line-442"></a>				  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='varid'>qan</span> <span class='layout'>(</span><span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>av</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-443"></a>
+<a name="line-444"></a>	<span class='varid'>closeAll</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>NsEnv</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-445"></a>	<span class='varid'>closeAll</span> <span class='layout'>(</span><span class='varid'>ns'</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>wrn</span> <span class='varid'>ns'</span><span class='layout'>)</span>
+<a name="line-446"></a>				  <span class='keyword'>where</span>
+<a name="line-447"></a>				  <span class='varid'>wrn</span> <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"insert missing closing tag "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span>
+<a name="line-448"></a>
+<a name="line-449"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html
--- a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html
@@ -97,7 +97,7 @@
 <a name="line-89"></a>	<span class='layout'>(</span> <span class='varid'>processHref</span> <span class='varop'>$&lt;</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span>
 <a name="line-90"></a>	<span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-91"></a>	<span class='comment'>-- 4.10 QNames</span>
-<a name="line-92"></a>	<span class='varid'>processWithNsEnv</span> <span class='varid'>processEnvNames</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span><span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-92"></a>	<span class='varid'>processWithNsEnv</span> <span class='varid'>processEnvNames</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span><span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
 <a name="line-93"></a>	<span class='varop'>&gt;&gt;&gt;</span>
 <a name="line-94"></a>	<span class='comment'>-- 4.4 For any data or value element that does not have a datatypeLibrary attribute,</span>
 <a name="line-95"></a>	<span class='comment'>-- a datatypeLibrary attribute is added.</span>
@@ -237,7 +237,7 @@
 <a name="line-229"></a>                <span class='layout'>)</span>
 <a name="line-230"></a>	      <span class='layout'>)</span>
 <a name="line-231"></a>
-<a name="line-232"></a>    <span class='varid'>processEnvNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-232"></a>    <span class='varid'>processEnvNames</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
 <a name="line-233"></a>    <span class='varid'>processEnvNames</span> <span class='varid'>env</span>
 <a name="line-234"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>replaceQNames</span> <span class='varid'>env</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='str'>"name"</span><span class='layout'>)</span>
 <a name="line-235"></a>              <span class='varop'>`when`</span>
@@ -260,29 +260,29 @@
 <a name="line-252"></a>	    <span class='keyglyph'>=</span> <span class='varid'>setBaseUri</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>createAttr</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2L</span> <span class='layout'>(</span><span class='conop'>:</span><span class='layout'>)</span>
 <a name="line-253"></a>	    <span class='keyword'>where</span>
 <a name="line-254"></a>
-<a name="line-255"></a>	    <span class='varid'>createAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-255"></a>	    <span class='varid'>createAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XName</span><span class='layout'>,</span> <span class='conid'>XName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
 <a name="line-256"></a>	    <span class='varid'>createAttr</span> <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>
-<a name="line-257"></a>		<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>nm</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>uri</span><span class='keyglyph'>]</span>
+<a name="line-257"></a>		<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>nm</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>
 <a name="line-258"></a>		<span class='keyword'>where</span>
-<a name="line-259"></a>		<span class='varid'>nm</span>  <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>pre</span>	<span class='keyglyph'>=</span> <span class='str'>"RelaxContextDefault"</span>
-<a name="line-260"></a>		    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>contextAttributes</span> <span class='varop'>++</span> <span class='varid'>pre</span>
+<a name="line-259"></a>		<span class='varid'>nm</span>  <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>pre</span>	<span class='keyglyph'>=</span> <span class='str'>"RelaxContextDefault"</span>
+<a name="line-260"></a>		    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>contextAttributes</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pre</span>
 <a name="line-261"></a>
 <a name="line-262"></a>	    <span class='varid'>setBaseUri</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
 <a name="line-263"></a>	    <span class='varid'>setBaseUri</span> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>contextBaseAttr</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span><span class='layout'>)</span>
 <a name="line-264"></a>
-<a name="line-265"></a>	<span class='varid'>replaceQNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>                        
+<a name="line-265"></a>	<span class='varid'>replaceQNames</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>                        
 <a name="line-266"></a>	<span class='varid'>replaceQNames</span> <span class='varid'>e</span> <span class='varid'>name</span>
 <a name="line-267"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>uri</span>
 <a name="line-268"></a>		<span class='keyglyph'>=</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='str'>"No Namespace-Mapping for the prefix "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pre</span> <span class='varop'>++</span> 
 <a name="line-269"></a>				    <span class='str'>" in the Context of Element: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>
 <a name="line-270"></a>				  <span class='layout'>)</span>
 <a name="line-271"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-272"></a>		<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='layout'>(</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>local</span> <span class='layout'>)</span>
+<a name="line-272"></a>		<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='layout'>(</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>local</span> <span class='layout'>)</span>
 <a name="line-273"></a>	    <span class='keyword'>where</span>
 <a name="line-274"></a>	    <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span> <span class='varid'>local'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>name</span>
 <a name="line-275"></a>	    <span class='varid'>local</span>         <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>local'</span>
-<a name="line-276"></a>	    <span class='varid'>uri</span> 	<span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
-<a name="line-277"></a>	    <span class='varid'>uri</span>           <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>pre</span> <span class='varid'>e</span>
+<a name="line-276"></a>	    <span class='varid'>uri</span> 	<span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>XName</span>
+<a name="line-277"></a>	    <span class='varid'>uri</span>           <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>pre</span><span class='layout'>)</span> <span class='varid'>e</span>
 <a name="line-278"></a>
 <a name="line-279"></a>    <span class='comment'>-- The value of the added datatypeLibrary attribute is the value of the </span>
 <a name="line-280"></a>    <span class='comment'>-- datatypeLibrary attribute of the nearest ancestor element that </span>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
--- a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
@@ -62,563 +62,559 @@
 <a name="line-54"></a>  <span class='layout'>)</span>
 <a name="line-55"></a><span class='keyword'>where</span>
 <a name="line-56"></a>
-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>  
-<a name="line-58"></a>
-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
-<a name="line-60"></a>  <span class='layout'>(</span> <span class='varid'>isURIReference</span> <span class='layout'>)</span>
-<a name="line-61"></a>
-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</span>
-<a name="line-63"></a>  <span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</span>
-<a name="line-64"></a>  <span class='layout'>,</span> <span class='varid'>isNCName</span>
-<a name="line-65"></a>  <span class='layout'>)</span>
-<a name="line-66"></a>
-<a name="line-67"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>
-<a name="line-68"></a>    <span class='layout'>(</span> <span class='conid'>Regex</span>
-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>matchWithRE</span>
-<a name="line-70"></a>    <span class='layout'>)</span>
-<a name="line-71"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>
-<a name="line-72"></a>    <span class='layout'>(</span> <span class='varid'>parseRegex</span> <span class='layout'>)</span>
-<a name="line-73"></a>
-<a name="line-74"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-75"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Ratio</span>
-<a name="line-76"></a>  
-<a name="line-77"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-78"></a>
-<a name="line-79"></a><span class='comment'>-- | Namespace of the W3C XML schema datatype library</span>
-<a name="line-80"></a>
-<a name="line-81"></a><a name="w3cNS"></a><span class='definition'>w3cNS</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-82"></a><span class='definition'>w3cNS</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span>
-<a name="line-83"></a>
-<a name="line-84"></a>
-<a name="line-85"></a><a name="xsd_string"></a><span class='definition'>xsd_string</span>
-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>xsd_normalizedString</span>
-<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>xsd_token</span>
-<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>xsd_language</span>
-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKEN</span>
-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKENS</span>
-<a name="line-91"></a> <span class='layout'>,</span> <span class='varid'>xsd_Name</span>
-<a name="line-92"></a> <span class='layout'>,</span> <span class='varid'>xsd_NCName</span>
-<a name="line-93"></a> <span class='layout'>,</span> <span class='varid'>xsd_ID</span>
-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREF</span>
-<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREFS</span>
-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITY</span>
-<a name="line-97"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITIES</span>
-<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>xsd_anyURI</span>
-<a name="line-99"></a> <span class='layout'>,</span> <span class='varid'>xsd_QName</span>
-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>xsd_NOTATION</span>
-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>xsd_hexBinary</span>
-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>xsd_base64Binary</span>
-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>xsd_decimal</span>
-<a name="line-104"></a> <span class='layout'>,</span> <span class='varid'>xsd_integer</span>
-<a name="line-105"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonPositiveInteger</span>
-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>xsd_negativeInteger</span>
-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonNegativeInteger</span>
-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>xsd_positiveInteger</span>
-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>xsd_long</span>
-<a name="line-110"></a> <span class='layout'>,</span> <span class='varid'>xsd_int</span>
-<a name="line-111"></a> <span class='layout'>,</span> <span class='varid'>xsd_short</span>
-<a name="line-112"></a> <span class='layout'>,</span> <span class='varid'>xsd_byte</span>
-<a name="line-113"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedLong</span>
-<a name="line-114"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedInt</span>
-<a name="line-115"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedShort</span>
-<a name="line-116"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedByte</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-117"></a>
-<a name="line-118"></a><span class='definition'>xsd_string</span>		<span class='keyglyph'>=</span> <span class='str'>"string"</span>
-<a name="line-119"></a><a name="xsd_normalizedString"></a><span class='definition'>xsd_normalizedString</span>	<span class='keyglyph'>=</span> <span class='str'>"normalizedString"</span>
-<a name="line-120"></a><a name="xsd_token"></a><span class='definition'>xsd_token</span>		<span class='keyglyph'>=</span> <span class='str'>"token"</span>
-<a name="line-121"></a><a name="xsd_language"></a><span class='definition'>xsd_language</span>		<span class='keyglyph'>=</span> <span class='str'>"language"</span>
-<a name="line-122"></a><a name="xsd_NMTOKEN"></a><span class='definition'>xsd_NMTOKEN</span>		<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>
-<a name="line-123"></a><a name="xsd_NMTOKENS"></a><span class='definition'>xsd_NMTOKENS</span>		<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>
-<a name="line-124"></a><a name="xsd_Name"></a><span class='definition'>xsd_Name</span>		<span class='keyglyph'>=</span> <span class='str'>"Name"</span>
-<a name="line-125"></a><a name="xsd_NCName"></a><span class='definition'>xsd_NCName</span>		<span class='keyglyph'>=</span> <span class='str'>"NCName"</span>
-<a name="line-126"></a><a name="xsd_ID"></a><span class='definition'>xsd_ID</span>			<span class='keyglyph'>=</span> <span class='str'>"ID"</span>
-<a name="line-127"></a><a name="xsd_IDREF"></a><span class='definition'>xsd_IDREF</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>
-<a name="line-128"></a><a name="xsd_IDREFS"></a><span class='definition'>xsd_IDREFS</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>
-<a name="line-129"></a><a name="xsd_ENTITY"></a><span class='definition'>xsd_ENTITY</span>		<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>
-<a name="line-130"></a><a name="xsd_ENTITIES"></a><span class='definition'>xsd_ENTITIES</span>		<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>
-<a name="line-131"></a><a name="xsd_anyURI"></a><span class='definition'>xsd_anyURI</span>		<span class='keyglyph'>=</span> <span class='str'>"anyURI"</span>
-<a name="line-132"></a><a name="xsd_QName"></a><span class='definition'>xsd_QName</span>		<span class='keyglyph'>=</span> <span class='str'>"QName"</span>
-<a name="line-133"></a><a name="xsd_NOTATION"></a><span class='definition'>xsd_NOTATION</span>		<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>
-<a name="line-134"></a><a name="xsd_hexBinary"></a><span class='definition'>xsd_hexBinary</span>		<span class='keyglyph'>=</span> <span class='str'>"hexBinary"</span>
-<a name="line-135"></a><a name="xsd_base64Binary"></a><span class='definition'>xsd_base64Binary</span>	<span class='keyglyph'>=</span> <span class='str'>"base64Binary"</span>
-<a name="line-136"></a><a name="xsd_decimal"></a><span class='definition'>xsd_decimal</span>		<span class='keyglyph'>=</span> <span class='str'>"decimal"</span>
-<a name="line-137"></a><a name="xsd_integer"></a><span class='definition'>xsd_integer</span>		<span class='keyglyph'>=</span> <span class='str'>"integer"</span>
-<a name="line-138"></a><a name="xsd_nonPositiveInteger"></a><span class='definition'>xsd_nonPositiveInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"nonPositiveInteger"</span>
-<a name="line-139"></a><a name="xsd_negativeInteger"></a><span class='definition'>xsd_negativeInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"negativeInteger"</span>
-<a name="line-140"></a><a name="xsd_nonNegativeInteger"></a><span class='definition'>xsd_nonNegativeInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"nonNegativeInteger"</span>
-<a name="line-141"></a><a name="xsd_positiveInteger"></a><span class='definition'>xsd_positiveInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"positiveInteger"</span>
-<a name="line-142"></a><a name="xsd_long"></a><span class='definition'>xsd_long</span>		<span class='keyglyph'>=</span> <span class='str'>"long"</span>
-<a name="line-143"></a><a name="xsd_int"></a><span class='definition'>xsd_int</span>			<span class='keyglyph'>=</span> <span class='str'>"int"</span>
-<a name="line-144"></a><a name="xsd_short"></a><span class='definition'>xsd_short</span>		<span class='keyglyph'>=</span> <span class='str'>"short"</span>
-<a name="line-145"></a><a name="xsd_byte"></a><span class='definition'>xsd_byte</span>		<span class='keyglyph'>=</span> <span class='str'>"byte"</span>
-<a name="line-146"></a><a name="xsd_unsignedLong"></a><span class='definition'>xsd_unsignedLong</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedLong"</span>
-<a name="line-147"></a><a name="xsd_unsignedInt"></a><span class='definition'>xsd_unsignedInt</span>		<span class='keyglyph'>=</span> <span class='str'>"unsignedInt"</span>
-<a name="line-148"></a><a name="xsd_unsignedShort"></a><span class='definition'>xsd_unsignedShort</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedShort"</span>
-<a name="line-149"></a><a name="xsd_unsignedByte"></a><span class='definition'>xsd_unsignedByte</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedByte"</span>
-<a name="line-150"></a>
-<a name="line-151"></a>
-<a name="line-152"></a><a name="xsd_length"></a><span class='definition'>xsd_length</span>
-<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxLength</span>
-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>xsd_minLength</span>
-<a name="line-155"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxExclusive</span>
-<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>xsd_minExclusive</span>
-<a name="line-157"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxInclusive</span>
-<a name="line-158"></a> <span class='layout'>,</span> <span class='varid'>xsd_minInclusive</span>
-<a name="line-159"></a> <span class='layout'>,</span> <span class='varid'>xsd_totalDigits</span>
-<a name="line-160"></a> <span class='layout'>,</span> <span class='varid'>xsd_fractionDigits</span>
-<a name="line-161"></a> <span class='layout'>,</span> <span class='varid'>xsd_pattern</span>
-<a name="line-162"></a> <span class='layout'>,</span> <span class='varid'>xsd_enumeration</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-163"></a>
-<a name="line-164"></a><span class='definition'>xsd_length</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_length</span>
-<a name="line-165"></a><a name="xsd_maxLength"></a><span class='definition'>xsd_maxLength</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_maxLength</span>
-<a name="line-166"></a><a name="xsd_minLength"></a><span class='definition'>xsd_minLength</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_minLength</span>
-<a name="line-167"></a>
-<a name="line-168"></a><a name="xsd_maxExclusive"></a><span class='definition'>xsd_maxExclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_maxExclusive</span>
-<a name="line-169"></a><a name="xsd_minExclusive"></a><span class='definition'>xsd_minExclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_minExclusive</span>
-<a name="line-170"></a><a name="xsd_maxInclusive"></a><span class='definition'>xsd_maxInclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_maxInclusive</span>
-<a name="line-171"></a><a name="xsd_minInclusive"></a><span class='definition'>xsd_minInclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_minInclusive</span>
-<a name="line-172"></a>
-<a name="line-173"></a><a name="xsd_totalDigits"></a><span class='definition'>xsd_totalDigits</span>		<span class='keyglyph'>=</span> <span class='str'>"totalDigits"</span>
-<a name="line-174"></a><a name="xsd_fractionDigits"></a><span class='definition'>xsd_fractionDigits</span>	<span class='keyglyph'>=</span> <span class='str'>"fractionDigits"</span>
-<a name="line-175"></a>
-<a name="line-176"></a><a name="xsd_pattern"></a><span class='definition'>xsd_pattern</span>		<span class='keyglyph'>=</span> <span class='str'>"pattern"</span>
-<a name="line-177"></a><a name="xsd_enumeration"></a><span class='definition'>xsd_enumeration</span>		<span class='keyglyph'>=</span> <span class='str'>"enumeration"</span>
-<a name="line-178"></a>
-<a name="line-179"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-180"></a>
-<a name="line-181"></a><a name="w3cDatatypeLib"></a><span class='comment'>-- | The main entry point to the W3C XML schema datatype library.</span>
-<a name="line-182"></a><span class='comment'>--</span>
-<a name="line-183"></a><span class='comment'>-- The 'DTC' constructor exports the list of supported datatypes and params.</span>
-<a name="line-184"></a><span class='comment'>-- It also exports the specialized functions to validate a XML instance value with</span>
-<a name="line-185"></a><span class='comment'>-- respect to a datatype.</span>
-<a name="line-186"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>
-<a name="line-187"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>w3cNS</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsW3C</span> <span class='varid'>datatypeEqualW3C</span> <span class='varid'>w3cDatatypes</span><span class='layout'>)</span>
-<a name="line-188"></a>
-<a name="line-189"></a>
-<a name="line-190"></a><a name="w3cDatatypes"></a><span class='comment'>-- | All supported datatypes of the library</span>
-<a name="line-191"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>
-<a name="line-192"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-193"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span> 	<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-194"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-195"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-196"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-197"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span>			<span class='varid'>listParams</span>  <span class='layout'>)</span>
-<a name="line-198"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-199"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-200"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-201"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-202"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span>			<span class='varid'>listParams</span>  <span class='layout'>)</span>
-<a name="line-203"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-204"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span>			<span class='varid'>listParams</span>  <span class='layout'>)</span>
-<a name="line-205"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-206"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-207"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-208"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span>		<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-209"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span>		<span class='varid'>stringParams</span><span class='layout'>)</span>
-<a name="line-210"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span>			<span class='varid'>decimalParams</span><span class='layout'>)</span>
-<a name="line-211"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-212"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span>	<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-213"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-214"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span>	<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-215"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-216"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-217"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-218"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-219"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-220"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-221"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-222"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-223"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
-<a name="line-224"></a>               <span class='keyglyph'>]</span>
-<a name="line-225"></a>
-<a name="line-226"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-227"></a>
-<a name="line-228"></a><a name="stringParams"></a><span class='comment'>-- | List of allowed params for the string datatypes</span>
-<a name="line-229"></a><span class='definition'>stringParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
-<a name="line-230"></a><span class='definition'>stringParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableString</span>
-<a name="line-231"></a>
-<a name="line-232"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-233"></a>
-<a name="line-234"></a><a name="patternValid"></a><span class='definition'>patternValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
-<a name="line-235"></a><span class='definition'>patternValid</span> <span class='varid'>params</span>
-<a name="line-236"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramPatternValid</span> <span class='varop'>$</span> <span class='varid'>params</span>
-<a name="line-237"></a>      <span class='keyword'>where</span>
-<a name="line-238"></a>      <span class='varid'>paramPatternValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>
-<a name="line-239"></a>	  <span class='keyglyph'>|</span> <span class='varid'>pn</span> <span class='varop'>==</span> <span class='varid'>xsd_pattern</span>   <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>patParamValid</span> <span class='varid'>pv</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span><span class='layout'>)</span>
-<a name="line-240"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>ok</span>
-<a name="line-241"></a>
-<a name="line-242"></a><a name="patParamValid"></a><span class='definition'>patParamValid</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-243"></a><span class='definition'>patParamValid</span> <span class='varid'>regex</span> <span class='varid'>a</span>
-<a name="line-244"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span> <span class='keyword'>of</span>
-<a name="line-245"></a>      <span class='layout'>(</span><span class='conid'>Left</span> <span class='keyword'>_</span>  <span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>False</span>
-<a name="line-246"></a>      <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>ex</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>matchWithRE</span> <span class='varid'>ex</span> <span class='varop'>$</span> <span class='varid'>a</span>
-<a name="line-247"></a>
-<a name="line-248"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-249"></a>
-<a name="line-250"></a><span class='comment'>-- | List of allowed params for the decimal datatypes</span>
-<a name="line-251"></a>
-<a name="line-252"></a><a name="decimalParams"></a><span class='definition'>decimalParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
-<a name="line-253"></a><span class='definition'>decimalParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableDecimal</span>
-<a name="line-254"></a>
-<a name="line-255"></a><a name="fctTableDecimal"></a><span class='definition'>fctTableDecimal</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-256"></a><span class='definition'>fctTableDecimal</span>
-<a name="line-257"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_maxExclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-258"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minExclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-259"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_maxInclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-260"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minInclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-261"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_totalDigits</span><span class='layout'>,</span>    <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span>    <span class='varid'>totalDigits</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-262"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_fractionDigits</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fractionDigits</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-263"></a>      <span class='keyglyph'>]</span>
-<a name="line-264"></a>    <span class='keyword'>where</span>
-<a name="line-265"></a>    <span class='varid'>cvd</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
-<a name="line-266"></a>    <span class='varid'>cvd</span>	<span class='varid'>op</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isDecimal</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>readDecimal</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>
-<a name="line-267"></a>
-<a name="line-268"></a>    <span class='varid'>cvi</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
-<a name="line-269"></a>    <span class='varid'>cvi</span>	<span class='varid'>op</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>
-<a name="line-270"></a>
-<a name="line-271"></a><a name="decimalValid"></a><span class='definition'>decimalValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='conid'>Rational</span> <span class='conid'>Rational</span>
-<a name="line-272"></a><span class='definition'>decimalValid</span> <span class='varid'>params</span>
-<a name="line-273"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramDecimalValid</span> <span class='varop'>$</span> <span class='varid'>params</span>
-<a name="line-274"></a>    <span class='keyword'>where</span>
-<a name="line-275"></a>    <span class='varid'>paramDecimalValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>
-<a name="line-276"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>
-<a name="line-277"></a>	  <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>pn</span> <span class='varop'>$</span> <span class='varid'>fctTableDecimal</span><span class='layout'>)</span> <span class='varid'>pv</span><span class='layout'>)</span>
-<a name="line-278"></a>	  <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>showDecimal</span><span class='layout'>)</span>
-<a name="line-279"></a>
-<a name="line-280"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-281"></a>
-<a name="line-282"></a><span class='comment'>-- | List of allowed params for the decimal and integer datatypes</span>
-<a name="line-283"></a>
-<a name="line-284"></a><a name="integerParams"></a><span class='definition'>integerParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
-<a name="line-285"></a><span class='definition'>integerParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableInteger</span>
-<a name="line-286"></a>
-<a name="line-287"></a><a name="fctTableInteger"></a><span class='definition'>fctTableInteger</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-288"></a><span class='definition'>fctTableInteger</span>
-<a name="line-289"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_maxExclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-290"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minExclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-291"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_maxInclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-292"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minInclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-293"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_totalDigits</span><span class='layout'>,</span>    <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>totalD</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>toInteger</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-294"></a>      <span class='keyglyph'>]</span>
-<a name="line-295"></a>    <span class='keyword'>where</span>
-<a name="line-296"></a>    <span class='varid'>cvi</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
-<a name="line-297"></a>    <span class='varid'>cvi</span>	<span class='varid'>op</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>
-<a name="line-298"></a>
-<a name="line-299"></a>    <span class='varid'>totalD</span> <span class='varid'>i</span>
-<a name="line-300"></a>	<span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='num'>0</span>	    <span class='keyglyph'>=</span> <span class='varid'>totalD</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='varid'>i</span><span class='layout'>)</span>
-<a name="line-301"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>toInteger</span> <span class='varop'>.</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>i</span>
-<a name="line-302"></a>
-<a name="line-303"></a><a name="integerValid"></a><span class='definition'>integerValid</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>
-<a name="line-304"></a><span class='definition'>integerValid</span> <span class='varid'>datatype</span> <span class='varid'>params</span> 
-<a name="line-305"></a>    <span class='keyglyph'>=</span> <span class='varid'>assertInRange</span>
-<a name="line-306"></a>      <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-307"></a>      <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramIntegerValid</span> <span class='varop'>$</span> <span class='varid'>params</span><span class='layout'>)</span>
-<a name="line-308"></a>    <span class='keyword'>where</span>
-<a name="line-309"></a>    <span class='varid'>assertInRange</span> 	<span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>
-<a name="line-310"></a>    <span class='varid'>assertInRange</span>
-<a name="line-311"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>
-<a name="line-312"></a>	  <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>datatype</span> <span class='varop'>$</span> <span class='varid'>integerRangeTable</span><span class='layout'>)</span>
-<a name="line-313"></a>	  <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>datatype</span> <span class='varop'>++</span>
-<a name="line-314"></a>		    <span class='str'>" with value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span>
-<a name="line-315"></a>		    <span class='str'>" not in integer value range"</span>
-<a name="line-316"></a>		  <span class='layout'>)</span>
-<a name="line-317"></a>	  <span class='layout'>)</span>
-<a name="line-318"></a>    <span class='varid'>paramIntegerValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>
-<a name="line-319"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>
-<a name="line-320"></a>	  <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>pn</span> <span class='varop'>$</span> <span class='varid'>fctTableInteger</span><span class='layout'>)</span> <span class='varid'>pv</span><span class='layout'>)</span>
-<a name="line-321"></a>	  <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
-<a name="line-322"></a>
-<a name="line-323"></a><a name="integerRangeTable"></a><span class='definition'>integerRangeTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-324"></a><span class='definition'>integerRangeTable</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span>		<span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span>
-<a name="line-325"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span>	<span class='layout'>(</span><span class='varop'>&lt;=</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-326"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='varop'>&lt;</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-327"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span>	<span class='layout'>(</span><span class='varop'>&gt;=</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-328"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='varop'>&gt;</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
-<a name="line-329"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>9223372036854775808</span><span class='layout'>)</span>
-<a name="line-330"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>2147483648</span><span class='layout'>)</span>
-<a name="line-331"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>32768</span><span class='layout'>)</span>
-<a name="line-332"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>128</span><span class='layout'>)</span>
-<a name="line-333"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>18446744073709551616</span><span class='layout'>)</span>
-<a name="line-334"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>4294967296</span><span class='layout'>)</span>
-<a name="line-335"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>65536</span><span class='layout'>)</span>
-<a name="line-336"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>256</span><span class='layout'>)</span>
-<a name="line-337"></a>			  <span class='keyglyph'>]</span>
-<a name="line-338"></a>                          <span class='keyword'>where</span>
-<a name="line-339"></a>			  <span class='varid'>inR</span> <span class='varid'>b</span> <span class='varid'>i</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='num'>0</span> <span class='comment'>-</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>&lt;=</span> <span class='varid'>i</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='varid'>b</span>
-<a name="line-340"></a>			  <span class='varid'>inP</span> <span class='varid'>b</span> <span class='varid'>i</span>	<span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'>&lt;=</span> <span class='varid'>i</span>       <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='varid'>b</span>
-<a name="line-341"></a>
-<a name="line-342"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-343"></a>
-<a name="line-344"></a><span class='comment'>-- | List of allowed params for the list datatypes</span>
-<a name="line-345"></a>
-<a name="line-346"></a><a name="listParams"></a><span class='definition'>listParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
-<a name="line-347"></a><span class='definition'>listParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableList</span>
-<a name="line-348"></a>
-<a name="line-349"></a><a name="listValid"></a><span class='definition'>listValid</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
-<a name="line-350"></a><span class='definition'>listValid</span> <span class='varid'>d</span>	<span class='keyglyph'>=</span> <span class='varid'>stringValidFT</span> <span class='varid'>fctTableList</span> <span class='varid'>d</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span>
-<a name="line-351"></a>
-<a name="line-352"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-353"></a>
-<a name="line-354"></a><a name="isNameList"></a><span class='definition'>isNameList</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-355"></a><span class='definition'>isNameList</span> <span class='varid'>p</span> <span class='varid'>w</span>
-<a name="line-356"></a>    <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>all</span> <span class='varid'>p</span> <span class='varid'>ts</span>
-<a name="line-357"></a>      <span class='keyword'>where</span>
-<a name="line-358"></a>      <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>w</span>
-<a name="line-359"></a>
-<a name="line-360"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-361"></a>
-<a name="line-362"></a><a name="rex"></a><span class='definition'>rex</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-363"></a><span class='definition'>rex</span>		<span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='varid'>undefined</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parseRegex</span>
-<a name="line-364"></a>
-<a name="line-365"></a><a name="isRex"></a><span class='definition'>isRex</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-366"></a><span class='definition'>isRex</span> <span class='varid'>ex</span>	<span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>matchWithRE</span> <span class='varid'>ex</span>
-<a name="line-367"></a>
-<a name="line-368"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-369"></a>
-<a name="line-370"></a><a name="rexLanguage"></a><span class='definition'>rexLanguage</span>
-<a name="line-371"></a>  <span class='layout'>,</span> <span class='varid'>rexHexBinary</span>
-<a name="line-372"></a>  <span class='layout'>,</span> <span class='varid'>rexBase64Binary</span>
-<a name="line-373"></a>  <span class='layout'>,</span> <span class='varid'>rexDecimal</span>
-<a name="line-374"></a>  <span class='layout'>,</span> <span class='varid'>rexInteger</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span>
-<a name="line-375"></a>
-<a name="line-376"></a><span class='definition'>rexLanguage</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"[A-Za-z]{1,8}(-[A-Za-z]{1,8})*"</span>
-<a name="line-377"></a><a name="rexHexBinary"></a><span class='definition'>rexHexBinary</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"([A-Fa-f0-9]{2})*"</span>
-<a name="line-378"></a><a name="rexBase64Binary"></a><span class='definition'>rexBase64Binary</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='varop'>$</span>
-<a name="line-379"></a>		  <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{4})*(("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{2}==)|("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{3}=)|)"</span>
-<a name="line-380"></a>		  <span class='keyword'>where</span>
-<a name="line-381"></a>		  <span class='varid'>b64</span>     <span class='keyglyph'>=</span> <span class='str'>"[A-Za-z0-9+/]"</span>
-<a name="line-382"></a><a name="rexDecimal"></a><span class='definition'>rexDecimal</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))"</span>
-<a name="line-383"></a><a name="rexInteger"></a><span class='definition'>rexInteger</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"(\\+|-)?[0-9]+"</span>
-<a name="line-384"></a>
-<a name="line-385"></a><a name="isLanguage"></a><span class='definition'>isLanguage</span>
-<a name="line-386"></a>  <span class='layout'>,</span> <span class='varid'>isHexBinary</span>
-<a name="line-387"></a>  <span class='layout'>,</span> <span class='varid'>isBase64Binary</span>
-<a name="line-388"></a>  <span class='layout'>,</span> <span class='varid'>isDecimal</span>
-<a name="line-389"></a>  <span class='layout'>,</span> <span class='varid'>isInteger</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-390"></a>
-<a name="line-391"></a><span class='definition'>isLanguage</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexLanguage</span>
-<a name="line-392"></a><a name="isHexBinary"></a><span class='definition'>isHexBinary</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexHexBinary</span>
-<a name="line-393"></a><a name="isBase64Binary"></a><span class='definition'>isBase64Binary</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexBase64Binary</span>
-<a name="line-394"></a><a name="isDecimal"></a><span class='definition'>isDecimal</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexDecimal</span>
-<a name="line-395"></a><a name="isInteger"></a><span class='definition'>isInteger</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexInteger</span>
-<a name="line-396"></a>
-<a name="line-397"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-398"></a>
-<a name="line-399"></a><a name="normBase64"></a><span class='definition'>normBase64</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-400"></a><span class='definition'>normBase64</span>	<span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isB64</span>
-<a name="line-401"></a>		  <span class='keyword'>where</span>
-<a name="line-402"></a>		  <span class='varid'>isB64</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='chr'>'A'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'Z'</span><span class='layout'>)</span>
-<a name="line-403"></a>			    <span class='varop'>||</span>
-<a name="line-404"></a>			    <span class='layout'>(</span> <span class='chr'>'a'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'z'</span><span class='layout'>)</span>
-<a name="line-405"></a>			    <span class='varop'>||</span>
-<a name="line-406"></a>			    <span class='layout'>(</span> <span class='chr'>'0'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'9'</span><span class='layout'>)</span>
-<a name="line-407"></a>			    <span class='varop'>||</span>
-<a name="line-408"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'+'</span>
-<a name="line-409"></a>			    <span class='varop'>||</span>
-<a name="line-410"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'/'</span>
-<a name="line-411"></a>			    <span class='varop'>||</span>
-<a name="line-412"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'='</span>
-<a name="line-413"></a>
-<a name="line-414"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-415"></a>
-<a name="line-416"></a><a name="readDecimal"></a><span class='definition'>readDecimal</span>
-<a name="line-417"></a>  <span class='layout'>,</span> <span class='varid'>readDecimal'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span>
-<a name="line-418"></a>
-<a name="line-419"></a><span class='definition'>readDecimal</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>readDecimal'</span> <span class='varid'>s</span>
-<a name="line-420"></a><span class='definition'>readDecimal</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>negate</span> <span class='layout'>(</span><span class='varid'>readDecimal'</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-421"></a><span class='definition'>readDecimal</span>      <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>readDecimal'</span> <span class='varid'>s</span>
-<a name="line-422"></a>
-<a name="line-423"></a><a name="readDecimal'"></a><span class='definition'>readDecimal'</span> <span class='varid'>s</span>
-<a name="line-424"></a>    <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='num'>0</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span>
-<a name="line-425"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>%</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>^</span> <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>fs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-426"></a>    <span class='keyword'>where</span>
-<a name="line-427"></a>    <span class='layout'>(</span><span class='varid'>ns</span><span class='layout'>,</span> <span class='varid'>fs'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>'.'</span><span class='layout'>)</span> <span class='varid'>s</span>
-<a name="line-428"></a>    <span class='varid'>fs</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>fs'</span>
-<a name="line-429"></a>
-<a name="line-430"></a>    <span class='varid'>f</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>
-<a name="line-431"></a>    <span class='varid'>f</span> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>fs</span>		<span class='keyglyph'>=</span> <span class='num'>0</span>
-<a name="line-432"></a>      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>fs</span>
-<a name="line-433"></a>    <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>
-<a name="line-434"></a>    <span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>		<span class='keyglyph'>=</span> <span class='num'>0</span>
-<a name="line-435"></a>      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>ns</span>
-<a name="line-436"></a>
-<a name="line-437"></a><a name="totalDigits"></a><span class='definition'>totalDigits</span>
-<a name="line-438"></a>  <span class='layout'>,</span> <span class='varid'>totalDigits'</span>
-<a name="line-439"></a>  <span class='layout'>,</span> <span class='varid'>fractionDigits</span>	<span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
-<a name="line-440"></a>
-<a name="line-441"></a><span class='definition'>totalDigits</span> <span class='varid'>r</span>
-<a name="line-442"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='num'>0</span>
-<a name="line-443"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>&lt;</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='varid'>negate</span>  <span class='varop'>$</span> <span class='varid'>r</span>
-<a name="line-444"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span>           <span class='varop'>$</span> <span class='varid'>r</span>
-<a name="line-445"></a>
-<a name="line-446"></a><a name="totalDigits'"></a><span class='definition'>totalDigits'</span> <span class='varid'>r</span>
-<a name="line-447"></a>    <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span>  <span class='varop'>$</span> <span class='varid'>r</span>
-<a name="line-448"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>&lt;</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>+</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>    <span class='varop'>$</span> <span class='varid'>r</span>
-<a name="line-449"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>
-<a name="line-450"></a>
-<a name="line-451"></a><a name="fractionDigits"></a><span class='definition'>fractionDigits</span> <span class='varid'>r</span>
-<a name="line-452"></a>    <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='num'>0</span>
-<a name="line-453"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fractionDigits</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>
-<a name="line-454"></a>
-<a name="line-455"></a><a name="showDecimal"></a><span class='definition'>showDecimal</span>
-<a name="line-456"></a>  <span class='layout'>,</span> <span class='varid'>showDecimal'</span>		<span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-457"></a>
-<a name="line-458"></a><span class='definition'>showDecimal</span> <span class='varid'>d</span>
-<a name="line-459"></a>    <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>&lt;</span> <span class='num'>0</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showDecimal'</span> <span class='varop'>.</span> <span class='varid'>negate</span>    <span class='varop'>$</span> <span class='varid'>d</span>
-<a name="line-460"></a>    <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>&lt;</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>showDecimal'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>+</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>d</span>
-<a name="line-461"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span>          <span class='varid'>showDecimal'</span>             <span class='varop'>$</span> <span class='varid'>d</span>
-<a name="line-462"></a>
-<a name="line-463"></a><a name="showDecimal'"></a><span class='definition'>showDecimal'</span> <span class='varid'>d</span>
-<a name="line-464"></a>    <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>d</span> <span class='varop'>==</span> <span class='num'>1</span>    	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d</span>
-<a name="line-465"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>times10</span> <span class='num'>0</span>        <span class='varop'>$</span> <span class='varid'>d</span>
-<a name="line-466"></a>    <span class='keyword'>where</span>
-<a name="line-467"></a>    <span class='varid'>times10</span> <span class='varid'>i'</span> <span class='varid'>d'</span>
-<a name="line-468"></a>	<span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>d'</span> <span class='varop'>==</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='keyword'>let</span>
-<a name="line-469"></a>				  <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='varid'>i'</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d'</span>
-<a name="line-470"></a>				  <span class='keyword'>in</span>
-<a name="line-471"></a>				  <span class='varid'>reverse</span> <span class='varid'>y</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>reverse</span> <span class='varid'>x</span>
-<a name="line-472"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>times10</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>d'</span> <span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-473"></a>				  
-<a name="line-474"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-475"></a>
-<a name="line-476"></a><span class='comment'>-- | Tests whether a XML instance value matches a data-pattern.</span>
-<a name="line-477"></a><span class='comment'>-- (see also: 'stringValid')</span>
-<a name="line-478"></a>
-<a name="line-479"></a><a name="datatypeAllowsW3C"></a><span class='definition'>datatypeAllowsW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>
-<a name="line-480"></a><span class='definition'>datatypeAllowsW3C</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>value</span> <span class='keyword'>_</span>
-<a name="line-481"></a>    <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='varid'>value</span>
-<a name="line-482"></a>    <span class='keyword'>where</span>
-<a name="line-483"></a>    <span class='varid'>validString</span> <span class='varid'>normFct</span>
-<a name="line-484"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>
-<a name="line-485"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-486"></a>	  <span class='varid'>arr</span> <span class='varid'>normFct</span>
-<a name="line-487"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-488"></a>	  <span class='varid'>validLength</span>
-<a name="line-489"></a>
-<a name="line-490"></a>    <span class='varid'>validNormString</span>
-<a name="line-491"></a>	<span class='keyglyph'>=</span> <span class='varid'>validString</span> <span class='varid'>normalizeWhitespace</span>
-<a name="line-492"></a>
-<a name="line-493"></a>    <span class='varid'>validPattern</span>
-<a name="line-494"></a>	<span class='keyglyph'>=</span> <span class='varid'>patternValid</span> <span class='varid'>params</span>
-<a name="line-495"></a>
-<a name="line-496"></a>    <span class='varid'>validLength</span>
-<a name="line-497"></a>	<span class='keyglyph'>=</span> <span class='varid'>stringValid</span> <span class='varid'>d</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>params</span>
-<a name="line-498"></a>
-<a name="line-499"></a>    <span class='varid'>validList</span>
-<a name="line-500"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>
-<a name="line-501"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-502"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>
-<a name="line-503"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-504"></a>	  <span class='varid'>validListLength</span>
-<a name="line-505"></a>
-<a name="line-506"></a>    <span class='varid'>validListLength</span>
-<a name="line-507"></a>	<span class='keyglyph'>=</span> <span class='varid'>listValid</span> <span class='varid'>d</span> <span class='varid'>params</span>
-<a name="line-508"></a>
-<a name="line-509"></a>    <span class='varid'>validName</span> <span class='varid'>isN</span>
-<a name="line-510"></a>	<span class='keyglyph'>=</span> <span class='varid'>assertW3C</span> <span class='varid'>isN</span>
-<a name="line-511"></a>
-<a name="line-512"></a>    <span class='varid'>validNCName</span>
-<a name="line-513"></a>	<span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isNCName</span>
-<a name="line-514"></a>
-<a name="line-515"></a>    <span class='varid'>validQName</span>
-<a name="line-516"></a>	<span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isWellformedQualifiedName</span>
-<a name="line-517"></a>
-<a name="line-518"></a>    <span class='varid'>validDecimal</span>
-<a name="line-519"></a>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>
-<a name="line-520"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-521"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isDecimal</span>
-<a name="line-522"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-523"></a>	  <span class='varid'>checkWith</span> <span class='varid'>readDecimal</span> <span class='layout'>(</span><span class='varid'>decimalValid</span> <span class='varid'>params</span><span class='layout'>)</span>
-<a name="line-524"></a>
-<a name="line-525"></a>    <span class='varid'>validInteger</span> <span class='varid'>inRange</span>
-<a name="line-526"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>
-<a name="line-527"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-528"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>
-<a name="line-529"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-530"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isInteger</span>
-<a name="line-531"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-532"></a>	  <span class='varid'>checkWith</span> <span class='varid'>read</span> <span class='layout'>(</span><span class='varid'>integerValid</span> <span class='varid'>inRange</span> <span class='varid'>params</span><span class='layout'>)</span>
-<a name="line-533"></a>
-<a name="line-534"></a>    <span class='varid'>check</span>	<span class='keyglyph'>::</span> <span class='conid'>CheckString</span>
-<a name="line-535"></a>    <span class='varid'>check</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>notFound</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>checks</span>
-<a name="line-536"></a>
-<a name="line-537"></a>    <span class='varid'>notFound</span>	<span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span> <span class='varid'>params</span>
-<a name="line-538"></a>
-<a name="line-539"></a>    <span class='varid'>checks</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>CheckA</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-540"></a>    <span class='varid'>checks</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span>		<span class='varid'>validString</span> <span class='varid'>id</span><span class='layout'>)</span>
-<a name="line-541"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span>	<span class='varid'>validString</span> <span class='varid'>normalizeBlanks</span><span class='layout'>)</span>
-<a name="line-542"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span>			<span class='varid'>validNormString</span><span class='layout'>)</span>
-<a name="line-543"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span>		<span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isLanguage</span><span class='layout'>)</span>
-<a name="line-544"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span>		<span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span>
-<a name="line-545"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span>		<span class='varid'>validList</span>       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-546"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span>			<span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isName</span><span class='layout'>)</span>
-<a name="line-547"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span>		<span class='varid'>validNCName</span><span class='layout'>)</span>
-<a name="line-548"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span>			<span class='varid'>validNCName</span><span class='layout'>)</span>
-<a name="line-549"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span>			<span class='varid'>validNCName</span><span class='layout'>)</span>
-<a name="line-550"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span>		<span class='varid'>validList</span>       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNCName</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-551"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span>		<span class='varid'>validNCName</span><span class='layout'>)</span>
-<a name="line-552"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span>		<span class='varid'>validList</span>       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNCName</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-553"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span>		<span class='varid'>validName</span> <span class='varid'>isURIReference</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validString</span> <span class='varid'>escapeURI</span><span class='layout'>)</span>
-<a name="line-554"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span>			<span class='varid'>validQName</span><span class='layout'>)</span>
-<a name="line-555"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span>		<span class='varid'>validQName</span><span class='layout'>)</span>
-<a name="line-556"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span>		<span class='varid'>validString</span> <span class='varid'>id</span>         <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isHexBinary</span><span class='layout'>)</span>
-<a name="line-557"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span>		<span class='varid'>validString</span> <span class='varid'>normBase64</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isBase64Binary</span><span class='layout'>)</span>
-<a name="line-558"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span>		<span class='varid'>validPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validDecimal</span><span class='layout'>)</span>
-<a name="line-559"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_integer</span><span class='layout'>)</span>
-<a name="line-560"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>)</span>
-<a name="line-561"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_negativeInteger</span><span class='layout'>)</span>
-<a name="line-562"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>)</span>
-<a name="line-563"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_positiveInteger</span><span class='layout'>)</span>
-<a name="line-564"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_long</span><span class='layout'>)</span>
-<a name="line-565"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_int</span><span class='layout'>)</span>
-<a name="line-566"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_short</span><span class='layout'>)</span>
-<a name="line-567"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_byte</span><span class='layout'>)</span>
-<a name="line-568"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedLong</span><span class='layout'>)</span>
-<a name="line-569"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedInt</span><span class='layout'>)</span>
-<a name="line-570"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedShort</span><span class='layout'>)</span>
-<a name="line-571"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedByte</span><span class='layout'>)</span>
-<a name="line-572"></a>		  <span class='keyglyph'>]</span>
-<a name="line-573"></a>    <span class='varid'>assertW3C</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>p</span> <span class='varid'>errW3C</span>
-<a name="line-574"></a>    <span class='varid'>errW3C</span>	<span class='keyglyph'>=</span> <span class='varid'>errorMsgDataLibQName</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span>
-<a name="line-575"></a>
-<a name="line-576"></a><span class='comment'>-- ----------------------------------------</span>
-<a name="line-577"></a>
-<a name="line-578"></a><span class='comment'>-- | Tests whether a XML instance value matches a value-pattern.</span>
-<a name="line-579"></a>
-<a name="line-580"></a><a name="datatypeEqualW3C"></a><span class='definition'>datatypeEqualW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>
-<a name="line-581"></a><span class='definition'>datatypeEqualW3C</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='keyword'>_</span> <span class='varid'>s2</span> <span class='keyword'>_</span>
-<a name="line-582"></a>    <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span>
-<a name="line-583"></a>    <span class='keyword'>where</span>
-<a name="line-584"></a>    <span class='varid'>check</span>	<span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-585"></a>    <span class='varid'>check</span>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>norm</span>
-<a name="line-586"></a>
-<a name="line-587"></a>    <span class='varid'>notFound</span>	<span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>errorMsgDataTypeNotAllowed0</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span><span class='layout'>)</span>
-<a name="line-588"></a>
-<a name="line-589"></a>    <span class='varid'>found</span> <span class='varid'>nf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>nf</span> <span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>nf</span> <span class='varid'>x2</span><span class='layout'>)</span><span class='layout'>)</span>			<span class='comment'>-- normalize both values</span>
-<a name="line-590"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-591"></a>		  <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varop'>$</span> <span class='varid'>errorMsgEqual</span> <span class='varid'>d</span><span class='layout'>)</span>	<span class='comment'>-- and check on (==)</span>
-<a name="line-592"></a>
-<a name="line-593"></a>    <span class='varid'>norm</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span>		<span class='varid'>id</span>			<span class='layout'>)</span>
-<a name="line-594"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span>	<span class='varid'>normalizeBlanks</span>		<span class='layout'>)</span>
-<a name="line-595"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-596"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-597"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-598"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-599"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span>			<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-600"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-601"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span>			<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-602"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-603"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-604"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-605"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-606"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span>		<span class='varid'>escapeURI</span> <span class='varop'>.</span> <span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-607"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-608"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-609"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span>		<span class='varid'>id</span>			<span class='layout'>)</span>
-<a name="line-610"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span>		<span class='varid'>normBase64</span>		<span class='layout'>)</span>
-<a name="line-611"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span>		<span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>readDecimal</span> <span class='varop'>.</span> <span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
-<a name="line-612"></a>	   <span class='keyglyph'>]</span>
-<a name="line-613"></a>
-<a name="line-614"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Ratio</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>				<span class='layout'>(</span> <span class='varid'>isURIReference</span> <span class='layout'>)</span>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>		<span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</span>
+<a name="line-63"></a>						<span class='layout'>,</span> <span class='varid'>isNCName</span>
+<a name="line-64"></a>						<span class='layout'>)</span>
+<a name="line-65"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>
+<a name="line-66"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>	<span class='layout'>(</span> <span class='conid'>Regex</span>
+<a name="line-67"></a>						<span class='layout'>,</span> <span class='varid'>matchWithRE</span>
+<a name="line-68"></a>						<span class='layout'>)</span>
+<a name="line-69"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>
+<a name="line-70"></a>                                                <span class='layout'>(</span> <span class='varid'>parseRegex</span>
+<a name="line-71"></a>						<span class='layout'>)</span>
+<a name="line-72"></a>  
+<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='comment'>-- | Namespace of the W3C XML schema datatype library</span>
+<a name="line-76"></a>
+<a name="line-77"></a><a name="w3cNS"></a><span class='definition'>w3cNS</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-78"></a><span class='definition'>w3cNS</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span>
+<a name="line-79"></a>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="xsd_string"></a><span class='definition'>xsd_string</span>
+<a name="line-82"></a> <span class='layout'>,</span> <span class='varid'>xsd_normalizedString</span>
+<a name="line-83"></a> <span class='layout'>,</span> <span class='varid'>xsd_token</span>
+<a name="line-84"></a> <span class='layout'>,</span> <span class='varid'>xsd_language</span>
+<a name="line-85"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKEN</span>
+<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKENS</span>
+<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>xsd_Name</span>
+<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>xsd_NCName</span>
+<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>xsd_ID</span>
+<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREF</span>
+<a name="line-91"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREFS</span>
+<a name="line-92"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITY</span>
+<a name="line-93"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITIES</span>
+<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>xsd_anyURI</span>
+<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>xsd_QName</span>
+<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>xsd_NOTATION</span>
+<a name="line-97"></a> <span class='layout'>,</span> <span class='varid'>xsd_hexBinary</span>
+<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>xsd_base64Binary</span>
+<a name="line-99"></a> <span class='layout'>,</span> <span class='varid'>xsd_decimal</span>
+<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>xsd_integer</span>
+<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonPositiveInteger</span>
+<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>xsd_negativeInteger</span>
+<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonNegativeInteger</span>
+<a name="line-104"></a> <span class='layout'>,</span> <span class='varid'>xsd_positiveInteger</span>
+<a name="line-105"></a> <span class='layout'>,</span> <span class='varid'>xsd_long</span>
+<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>xsd_int</span>
+<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>xsd_short</span>
+<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>xsd_byte</span>
+<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedLong</span>
+<a name="line-110"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedInt</span>
+<a name="line-111"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedShort</span>
+<a name="line-112"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedByte</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='definition'>xsd_string</span>		<span class='keyglyph'>=</span> <span class='str'>"string"</span>
+<a name="line-115"></a><a name="xsd_normalizedString"></a><span class='definition'>xsd_normalizedString</span>	<span class='keyglyph'>=</span> <span class='str'>"normalizedString"</span>
+<a name="line-116"></a><a name="xsd_token"></a><span class='definition'>xsd_token</span>		<span class='keyglyph'>=</span> <span class='str'>"token"</span>
+<a name="line-117"></a><a name="xsd_language"></a><span class='definition'>xsd_language</span>		<span class='keyglyph'>=</span> <span class='str'>"language"</span>
+<a name="line-118"></a><a name="xsd_NMTOKEN"></a><span class='definition'>xsd_NMTOKEN</span>		<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>
+<a name="line-119"></a><a name="xsd_NMTOKENS"></a><span class='definition'>xsd_NMTOKENS</span>		<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>
+<a name="line-120"></a><a name="xsd_Name"></a><span class='definition'>xsd_Name</span>		<span class='keyglyph'>=</span> <span class='str'>"Name"</span>
+<a name="line-121"></a><a name="xsd_NCName"></a><span class='definition'>xsd_NCName</span>		<span class='keyglyph'>=</span> <span class='str'>"NCName"</span>
+<a name="line-122"></a><a name="xsd_ID"></a><span class='definition'>xsd_ID</span>			<span class='keyglyph'>=</span> <span class='str'>"ID"</span>
+<a name="line-123"></a><a name="xsd_IDREF"></a><span class='definition'>xsd_IDREF</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>
+<a name="line-124"></a><a name="xsd_IDREFS"></a><span class='definition'>xsd_IDREFS</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>
+<a name="line-125"></a><a name="xsd_ENTITY"></a><span class='definition'>xsd_ENTITY</span>		<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>
+<a name="line-126"></a><a name="xsd_ENTITIES"></a><span class='definition'>xsd_ENTITIES</span>		<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>
+<a name="line-127"></a><a name="xsd_anyURI"></a><span class='definition'>xsd_anyURI</span>		<span class='keyglyph'>=</span> <span class='str'>"anyURI"</span>
+<a name="line-128"></a><a name="xsd_QName"></a><span class='definition'>xsd_QName</span>		<span class='keyglyph'>=</span> <span class='str'>"QName"</span>
+<a name="line-129"></a><a name="xsd_NOTATION"></a><span class='definition'>xsd_NOTATION</span>		<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>
+<a name="line-130"></a><a name="xsd_hexBinary"></a><span class='definition'>xsd_hexBinary</span>		<span class='keyglyph'>=</span> <span class='str'>"hexBinary"</span>
+<a name="line-131"></a><a name="xsd_base64Binary"></a><span class='definition'>xsd_base64Binary</span>	<span class='keyglyph'>=</span> <span class='str'>"base64Binary"</span>
+<a name="line-132"></a><a name="xsd_decimal"></a><span class='definition'>xsd_decimal</span>		<span class='keyglyph'>=</span> <span class='str'>"decimal"</span>
+<a name="line-133"></a><a name="xsd_integer"></a><span class='definition'>xsd_integer</span>		<span class='keyglyph'>=</span> <span class='str'>"integer"</span>
+<a name="line-134"></a><a name="xsd_nonPositiveInteger"></a><span class='definition'>xsd_nonPositiveInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"nonPositiveInteger"</span>
+<a name="line-135"></a><a name="xsd_negativeInteger"></a><span class='definition'>xsd_negativeInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"negativeInteger"</span>
+<a name="line-136"></a><a name="xsd_nonNegativeInteger"></a><span class='definition'>xsd_nonNegativeInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"nonNegativeInteger"</span>
+<a name="line-137"></a><a name="xsd_positiveInteger"></a><span class='definition'>xsd_positiveInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"positiveInteger"</span>
+<a name="line-138"></a><a name="xsd_long"></a><span class='definition'>xsd_long</span>		<span class='keyglyph'>=</span> <span class='str'>"long"</span>
+<a name="line-139"></a><a name="xsd_int"></a><span class='definition'>xsd_int</span>			<span class='keyglyph'>=</span> <span class='str'>"int"</span>
+<a name="line-140"></a><a name="xsd_short"></a><span class='definition'>xsd_short</span>		<span class='keyglyph'>=</span> <span class='str'>"short"</span>
+<a name="line-141"></a><a name="xsd_byte"></a><span class='definition'>xsd_byte</span>		<span class='keyglyph'>=</span> <span class='str'>"byte"</span>
+<a name="line-142"></a><a name="xsd_unsignedLong"></a><span class='definition'>xsd_unsignedLong</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedLong"</span>
+<a name="line-143"></a><a name="xsd_unsignedInt"></a><span class='definition'>xsd_unsignedInt</span>		<span class='keyglyph'>=</span> <span class='str'>"unsignedInt"</span>
+<a name="line-144"></a><a name="xsd_unsignedShort"></a><span class='definition'>xsd_unsignedShort</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedShort"</span>
+<a name="line-145"></a><a name="xsd_unsignedByte"></a><span class='definition'>xsd_unsignedByte</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedByte"</span>
+<a name="line-146"></a>
+<a name="line-147"></a>
+<a name="line-148"></a><a name="xsd_length"></a><span class='definition'>xsd_length</span>
+<a name="line-149"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxLength</span>
+<a name="line-150"></a> <span class='layout'>,</span> <span class='varid'>xsd_minLength</span>
+<a name="line-151"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxExclusive</span>
+<a name="line-152"></a> <span class='layout'>,</span> <span class='varid'>xsd_minExclusive</span>
+<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxInclusive</span>
+<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>xsd_minInclusive</span>
+<a name="line-155"></a> <span class='layout'>,</span> <span class='varid'>xsd_totalDigits</span>
+<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>xsd_fractionDigits</span>
+<a name="line-157"></a> <span class='layout'>,</span> <span class='varid'>xsd_pattern</span>
+<a name="line-158"></a> <span class='layout'>,</span> <span class='varid'>xsd_enumeration</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-159"></a>
+<a name="line-160"></a><span class='definition'>xsd_length</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_length</span>
+<a name="line-161"></a><a name="xsd_maxLength"></a><span class='definition'>xsd_maxLength</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_maxLength</span>
+<a name="line-162"></a><a name="xsd_minLength"></a><span class='definition'>xsd_minLength</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_minLength</span>
+<a name="line-163"></a>
+<a name="line-164"></a><a name="xsd_maxExclusive"></a><span class='definition'>xsd_maxExclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_maxExclusive</span>
+<a name="line-165"></a><a name="xsd_minExclusive"></a><span class='definition'>xsd_minExclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_minExclusive</span>
+<a name="line-166"></a><a name="xsd_maxInclusive"></a><span class='definition'>xsd_maxInclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_maxInclusive</span>
+<a name="line-167"></a><a name="xsd_minInclusive"></a><span class='definition'>xsd_minInclusive</span>	<span class='keyglyph'>=</span> <span class='varid'>rng_minInclusive</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="xsd_totalDigits"></a><span class='definition'>xsd_totalDigits</span>		<span class='keyglyph'>=</span> <span class='str'>"totalDigits"</span>
+<a name="line-170"></a><a name="xsd_fractionDigits"></a><span class='definition'>xsd_fractionDigits</span>	<span class='keyglyph'>=</span> <span class='str'>"fractionDigits"</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="xsd_pattern"></a><span class='definition'>xsd_pattern</span>		<span class='keyglyph'>=</span> <span class='str'>"pattern"</span>
+<a name="line-173"></a><a name="xsd_enumeration"></a><span class='definition'>xsd_enumeration</span>		<span class='keyglyph'>=</span> <span class='str'>"enumeration"</span>
+<a name="line-174"></a>
+<a name="line-175"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-176"></a>
+<a name="line-177"></a><a name="w3cDatatypeLib"></a><span class='comment'>-- | The main entry point to the W3C XML schema datatype library.</span>
+<a name="line-178"></a><span class='comment'>--</span>
+<a name="line-179"></a><span class='comment'>-- The 'DTC' constructor exports the list of supported datatypes and params.</span>
+<a name="line-180"></a><span class='comment'>-- It also exports the specialized functions to validate a XML instance value with</span>
+<a name="line-181"></a><span class='comment'>-- respect to a datatype.</span>
+<a name="line-182"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>
+<a name="line-183"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>w3cNS</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsW3C</span> <span class='varid'>datatypeEqualW3C</span> <span class='varid'>w3cDatatypes</span><span class='layout'>)</span>
+<a name="line-184"></a>
+<a name="line-185"></a>
+<a name="line-186"></a><a name="w3cDatatypes"></a><span class='comment'>-- | All supported datatypes of the library</span>
+<a name="line-187"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>
+<a name="line-188"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-189"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span> 	<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-190"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-191"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-192"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-193"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span>			<span class='varid'>listParams</span>  <span class='layout'>)</span>
+<a name="line-194"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-195"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-196"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-197"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-198"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span>			<span class='varid'>listParams</span>  <span class='layout'>)</span>
+<a name="line-199"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-200"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span>			<span class='varid'>listParams</span>  <span class='layout'>)</span>
+<a name="line-201"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-202"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-203"></a>               <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span>			<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-204"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span>		<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-205"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span>		<span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-206"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span>			<span class='varid'>decimalParams</span><span class='layout'>)</span>
+<a name="line-207"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-208"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span>	<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-209"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-210"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span>	<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-211"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-212"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-213"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-214"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-215"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span>			<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-216"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-217"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-218"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-219"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span>		<span class='varid'>integerParams</span><span class='layout'>)</span>
+<a name="line-220"></a>               <span class='keyglyph'>]</span>
+<a name="line-221"></a>
+<a name="line-222"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-223"></a>
+<a name="line-224"></a><a name="stringParams"></a><span class='comment'>-- | List of allowed params for the string datatypes</span>
+<a name="line-225"></a><span class='definition'>stringParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
+<a name="line-226"></a><span class='definition'>stringParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableString</span>
+<a name="line-227"></a>
+<a name="line-228"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-229"></a>
+<a name="line-230"></a><a name="patternValid"></a><span class='definition'>patternValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-231"></a><span class='definition'>patternValid</span> <span class='varid'>params</span>
+<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramPatternValid</span> <span class='varop'>$</span> <span class='varid'>params</span>
+<a name="line-233"></a>      <span class='keyword'>where</span>
+<a name="line-234"></a>      <span class='varid'>paramPatternValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-235"></a>	  <span class='keyglyph'>|</span> <span class='varid'>pn</span> <span class='varop'>==</span> <span class='varid'>xsd_pattern</span>   <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>patParamValid</span> <span class='varid'>pv</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-236"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>ok</span>
+<a name="line-237"></a>
+<a name="line-238"></a><a name="patParamValid"></a><span class='definition'>patParamValid</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-239"></a><span class='definition'>patParamValid</span> <span class='varid'>regex</span> <span class='varid'>a</span>
+<a name="line-240"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span> <span class='keyword'>of</span>
+<a name="line-241"></a>      <span class='layout'>(</span><span class='conid'>Left</span> <span class='keyword'>_</span>  <span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>False</span>
+<a name="line-242"></a>      <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>ex</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>matchWithRE</span> <span class='varid'>ex</span> <span class='varop'>$</span> <span class='varid'>a</span>
+<a name="line-243"></a>
+<a name="line-244"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-245"></a>
+<a name="line-246"></a><span class='comment'>-- | List of allowed params for the decimal datatypes</span>
+<a name="line-247"></a>
+<a name="line-248"></a><a name="decimalParams"></a><span class='definition'>decimalParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
+<a name="line-249"></a><span class='definition'>decimalParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableDecimal</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="fctTableDecimal"></a><span class='definition'>fctTableDecimal</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-252"></a><span class='definition'>fctTableDecimal</span>
+<a name="line-253"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_maxExclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-254"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minExclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-255"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_maxInclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-256"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minInclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-257"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_totalDigits</span><span class='layout'>,</span>    <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span>    <span class='varid'>totalDigits</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-258"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_fractionDigits</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fractionDigits</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-259"></a>      <span class='keyglyph'>]</span>
+<a name="line-260"></a>    <span class='keyword'>where</span>
+<a name="line-261"></a>    <span class='varid'>cvd</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-262"></a>    <span class='varid'>cvd</span>	<span class='varid'>op</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isDecimal</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>readDecimal</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>
+<a name="line-263"></a>
+<a name="line-264"></a>    <span class='varid'>cvi</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-265"></a>    <span class='varid'>cvi</span>	<span class='varid'>op</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>
+<a name="line-266"></a>
+<a name="line-267"></a><a name="decimalValid"></a><span class='definition'>decimalValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='conid'>Rational</span> <span class='conid'>Rational</span>
+<a name="line-268"></a><span class='definition'>decimalValid</span> <span class='varid'>params</span>
+<a name="line-269"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramDecimalValid</span> <span class='varop'>$</span> <span class='varid'>params</span>
+<a name="line-270"></a>    <span class='keyword'>where</span>
+<a name="line-271"></a>    <span class='varid'>paramDecimalValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-272"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>
+<a name="line-273"></a>	  <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>pn</span> <span class='varop'>$</span> <span class='varid'>fctTableDecimal</span><span class='layout'>)</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-274"></a>	  <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>showDecimal</span><span class='layout'>)</span>
+<a name="line-275"></a>
+<a name="line-276"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-277"></a>
+<a name="line-278"></a><span class='comment'>-- | List of allowed params for the decimal and integer datatypes</span>
+<a name="line-279"></a>
+<a name="line-280"></a><a name="integerParams"></a><span class='definition'>integerParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
+<a name="line-281"></a><span class='definition'>integerParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableInteger</span>
+<a name="line-282"></a>
+<a name="line-283"></a><a name="fctTableInteger"></a><span class='definition'>fctTableInteger</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-284"></a><span class='definition'>fctTableInteger</span>
+<a name="line-285"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_maxExclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-286"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minExclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-287"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_maxInclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-288"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minInclusive</span><span class='layout'>,</span>   <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-289"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_totalDigits</span><span class='layout'>,</span>    <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>totalD</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>toInteger</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-290"></a>      <span class='keyglyph'>]</span>
+<a name="line-291"></a>    <span class='keyword'>where</span>
+<a name="line-292"></a>    <span class='varid'>cvi</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-293"></a>    <span class='varid'>cvi</span>	<span class='varid'>op</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>
+<a name="line-294"></a>
+<a name="line-295"></a>    <span class='varid'>totalD</span> <span class='varid'>i</span>
+<a name="line-296"></a>	<span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='num'>0</span>	    <span class='keyglyph'>=</span> <span class='varid'>totalD</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-297"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>toInteger</span> <span class='varop'>.</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>i</span>
+<a name="line-298"></a>
+<a name="line-299"></a><a name="integerValid"></a><span class='definition'>integerValid</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>
+<a name="line-300"></a><span class='definition'>integerValid</span> <span class='varid'>datatype</span> <span class='varid'>params</span> 
+<a name="line-301"></a>    <span class='keyglyph'>=</span> <span class='varid'>assertInRange</span>
+<a name="line-302"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-303"></a>      <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramIntegerValid</span> <span class='varop'>$</span> <span class='varid'>params</span><span class='layout'>)</span>
+<a name="line-304"></a>    <span class='keyword'>where</span>
+<a name="line-305"></a>    <span class='varid'>assertInRange</span> 	<span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>
+<a name="line-306"></a>    <span class='varid'>assertInRange</span>
+<a name="line-307"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>
+<a name="line-308"></a>	  <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>datatype</span> <span class='varop'>$</span> <span class='varid'>integerRangeTable</span><span class='layout'>)</span>
+<a name="line-309"></a>	  <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>datatype</span> <span class='varop'>++</span>
+<a name="line-310"></a>		    <span class='str'>" with value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span>
+<a name="line-311"></a>		    <span class='str'>" not in integer value range"</span>
+<a name="line-312"></a>		  <span class='layout'>)</span>
+<a name="line-313"></a>	  <span class='layout'>)</span>
+<a name="line-314"></a>    <span class='varid'>paramIntegerValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-315"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>
+<a name="line-316"></a>	  <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>pn</span> <span class='varop'>$</span> <span class='varid'>fctTableInteger</span><span class='layout'>)</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-317"></a>	  <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>
+<a name="line-318"></a>
+<a name="line-319"></a><a name="integerRangeTable"></a><span class='definition'>integerRangeTable</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-320"></a><span class='definition'>integerRangeTable</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span>		<span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span>
+<a name="line-321"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span>	<span class='layout'>(</span><span class='varop'>&lt;=</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-322"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='varop'>&lt;</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-323"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span>	<span class='layout'>(</span><span class='varop'>&gt;=</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-324"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='varop'>&gt;</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-325"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>9223372036854775808</span><span class='layout'>)</span>
+<a name="line-326"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>2147483648</span><span class='layout'>)</span>
+<a name="line-327"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>32768</span><span class='layout'>)</span>
+<a name="line-328"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span>			<span class='varid'>inR</span> <span class='num'>128</span><span class='layout'>)</span>
+<a name="line-329"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>18446744073709551616</span><span class='layout'>)</span>
+<a name="line-330"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>4294967296</span><span class='layout'>)</span>
+<a name="line-331"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>65536</span><span class='layout'>)</span>
+<a name="line-332"></a>			  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span>		<span class='varid'>inP</span> <span class='num'>256</span><span class='layout'>)</span>
+<a name="line-333"></a>			  <span class='keyglyph'>]</span>
+<a name="line-334"></a>                          <span class='keyword'>where</span>
+<a name="line-335"></a>			  <span class='varid'>inR</span> <span class='varid'>b</span> <span class='varid'>i</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='num'>0</span> <span class='comment'>-</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>&lt;=</span> <span class='varid'>i</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='varid'>b</span>
+<a name="line-336"></a>			  <span class='varid'>inP</span> <span class='varid'>b</span> <span class='varid'>i</span>	<span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'>&lt;=</span> <span class='varid'>i</span>       <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='varid'>b</span>
+<a name="line-337"></a>
+<a name="line-338"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-339"></a>
+<a name="line-340"></a><span class='comment'>-- | List of allowed params for the list datatypes</span>
+<a name="line-341"></a>
+<a name="line-342"></a><a name="listParams"></a><span class='definition'>listParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
+<a name="line-343"></a><span class='definition'>listParams</span>	<span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableList</span>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="listValid"></a><span class='definition'>listValid</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-346"></a><span class='definition'>listValid</span> <span class='varid'>d</span>	<span class='keyglyph'>=</span> <span class='varid'>stringValidFT</span> <span class='varid'>fctTableList</span> <span class='varid'>d</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span>
+<a name="line-347"></a>
+<a name="line-348"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-349"></a>
+<a name="line-350"></a><a name="isNameList"></a><span class='definition'>isNameList</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-351"></a><span class='definition'>isNameList</span> <span class='varid'>p</span> <span class='varid'>w</span>
+<a name="line-352"></a>    <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>all</span> <span class='varid'>p</span> <span class='varid'>ts</span>
+<a name="line-353"></a>      <span class='keyword'>where</span>
+<a name="line-354"></a>      <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>w</span>
+<a name="line-355"></a>
+<a name="line-356"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-357"></a>
+<a name="line-358"></a><a name="rex"></a><span class='definition'>rex</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-359"></a><span class='definition'>rex</span>		<span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='varid'>undefined</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parseRegex</span>
+<a name="line-360"></a>
+<a name="line-361"></a><a name="isRex"></a><span class='definition'>isRex</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-362"></a><span class='definition'>isRex</span> <span class='varid'>ex</span>	<span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>matchWithRE</span> <span class='varid'>ex</span>
+<a name="line-363"></a>
+<a name="line-364"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-365"></a>
+<a name="line-366"></a><a name="rexLanguage"></a><span class='definition'>rexLanguage</span>
+<a name="line-367"></a>  <span class='layout'>,</span> <span class='varid'>rexHexBinary</span>
+<a name="line-368"></a>  <span class='layout'>,</span> <span class='varid'>rexBase64Binary</span>
+<a name="line-369"></a>  <span class='layout'>,</span> <span class='varid'>rexDecimal</span>
+<a name="line-370"></a>  <span class='layout'>,</span> <span class='varid'>rexInteger</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span>
+<a name="line-371"></a>
+<a name="line-372"></a><span class='definition'>rexLanguage</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"[A-Za-z]{1,8}(-[A-Za-z]{1,8})*"</span>
+<a name="line-373"></a><a name="rexHexBinary"></a><span class='definition'>rexHexBinary</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"([A-Fa-f0-9]{2})*"</span>
+<a name="line-374"></a><a name="rexBase64Binary"></a><span class='definition'>rexBase64Binary</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='varop'>$</span>
+<a name="line-375"></a>		  <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{4})*(("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{2}==)|("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{3}=)|)"</span>
+<a name="line-376"></a>		  <span class='keyword'>where</span>
+<a name="line-377"></a>		  <span class='varid'>b64</span>     <span class='keyglyph'>=</span> <span class='str'>"[A-Za-z0-9+/]"</span>
+<a name="line-378"></a><a name="rexDecimal"></a><span class='definition'>rexDecimal</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))"</span>
+<a name="line-379"></a><a name="rexInteger"></a><span class='definition'>rexInteger</span>	<span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"(\\+|-)?[0-9]+"</span>
+<a name="line-380"></a>
+<a name="line-381"></a><a name="isLanguage"></a><span class='definition'>isLanguage</span>
+<a name="line-382"></a>  <span class='layout'>,</span> <span class='varid'>isHexBinary</span>
+<a name="line-383"></a>  <span class='layout'>,</span> <span class='varid'>isBase64Binary</span>
+<a name="line-384"></a>  <span class='layout'>,</span> <span class='varid'>isDecimal</span>
+<a name="line-385"></a>  <span class='layout'>,</span> <span class='varid'>isInteger</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-386"></a>
+<a name="line-387"></a><span class='definition'>isLanguage</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexLanguage</span>
+<a name="line-388"></a><a name="isHexBinary"></a><span class='definition'>isHexBinary</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexHexBinary</span>
+<a name="line-389"></a><a name="isBase64Binary"></a><span class='definition'>isBase64Binary</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexBase64Binary</span>
+<a name="line-390"></a><a name="isDecimal"></a><span class='definition'>isDecimal</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexDecimal</span>
+<a name="line-391"></a><a name="isInteger"></a><span class='definition'>isInteger</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexInteger</span>
+<a name="line-392"></a>
+<a name="line-393"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-394"></a>
+<a name="line-395"></a><a name="normBase64"></a><span class='definition'>normBase64</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-396"></a><span class='definition'>normBase64</span>	<span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isB64</span>
+<a name="line-397"></a>		  <span class='keyword'>where</span>
+<a name="line-398"></a>		  <span class='varid'>isB64</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='chr'>'A'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'Z'</span><span class='layout'>)</span>
+<a name="line-399"></a>			    <span class='varop'>||</span>
+<a name="line-400"></a>			    <span class='layout'>(</span> <span class='chr'>'a'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'z'</span><span class='layout'>)</span>
+<a name="line-401"></a>			    <span class='varop'>||</span>
+<a name="line-402"></a>			    <span class='layout'>(</span> <span class='chr'>'0'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'9'</span><span class='layout'>)</span>
+<a name="line-403"></a>			    <span class='varop'>||</span>
+<a name="line-404"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'+'</span>
+<a name="line-405"></a>			    <span class='varop'>||</span>
+<a name="line-406"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'/'</span>
+<a name="line-407"></a>			    <span class='varop'>||</span>
+<a name="line-408"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'='</span>
+<a name="line-409"></a>
+<a name="line-410"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-411"></a>
+<a name="line-412"></a><a name="readDecimal"></a><span class='definition'>readDecimal</span>
+<a name="line-413"></a>  <span class='layout'>,</span> <span class='varid'>readDecimal'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span>
+<a name="line-414"></a>
+<a name="line-415"></a><span class='definition'>readDecimal</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>readDecimal'</span> <span class='varid'>s</span>
+<a name="line-416"></a><span class='definition'>readDecimal</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>negate</span> <span class='layout'>(</span><span class='varid'>readDecimal'</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-417"></a><span class='definition'>readDecimal</span>      <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>readDecimal'</span> <span class='varid'>s</span>
+<a name="line-418"></a>
+<a name="line-419"></a><a name="readDecimal'"></a><span class='definition'>readDecimal'</span> <span class='varid'>s</span>
+<a name="line-420"></a>    <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='num'>0</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-421"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>%</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>^</span> <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>fs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-422"></a>    <span class='keyword'>where</span>
+<a name="line-423"></a>    <span class='layout'>(</span><span class='varid'>ns</span><span class='layout'>,</span> <span class='varid'>fs'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>'.'</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-424"></a>    <span class='varid'>fs</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>fs'</span>
+<a name="line-425"></a>
+<a name="line-426"></a>    <span class='varid'>f</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>
+<a name="line-427"></a>    <span class='varid'>f</span> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>fs</span>		<span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-428"></a>      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>fs</span>
+<a name="line-429"></a>    <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>
+<a name="line-430"></a>    <span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>		<span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-431"></a>      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>ns</span>
+<a name="line-432"></a>
+<a name="line-433"></a><a name="totalDigits"></a><span class='definition'>totalDigits</span>
+<a name="line-434"></a>  <span class='layout'>,</span> <span class='varid'>totalDigits'</span>
+<a name="line-435"></a>  <span class='layout'>,</span> <span class='varid'>fractionDigits</span>	<span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-436"></a>
+<a name="line-437"></a><span class='definition'>totalDigits</span> <span class='varid'>r</span>
+<a name="line-438"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-439"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>&lt;</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='varid'>negate</span>  <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-440"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span>           <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-441"></a>
+<a name="line-442"></a><a name="totalDigits'"></a><span class='definition'>totalDigits'</span> <span class='varid'>r</span>
+<a name="line-443"></a>    <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span>  <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-444"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>&lt;</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>+</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>    <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-445"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-446"></a>
+<a name="line-447"></a><a name="fractionDigits"></a><span class='definition'>fractionDigits</span> <span class='varid'>r</span>
+<a name="line-448"></a>    <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-449"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fractionDigits</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-450"></a>
+<a name="line-451"></a><a name="showDecimal"></a><span class='definition'>showDecimal</span>
+<a name="line-452"></a>  <span class='layout'>,</span> <span class='varid'>showDecimal'</span>		<span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-453"></a>
+<a name="line-454"></a><span class='definition'>showDecimal</span> <span class='varid'>d</span>
+<a name="line-455"></a>    <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>&lt;</span> <span class='num'>0</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showDecimal'</span> <span class='varop'>.</span> <span class='varid'>negate</span>    <span class='varop'>$</span> <span class='varid'>d</span>
+<a name="line-456"></a>    <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>&lt;</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>showDecimal'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>+</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>d</span>
+<a name="line-457"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span>          <span class='varid'>showDecimal'</span>             <span class='varop'>$</span> <span class='varid'>d</span>
+<a name="line-458"></a>
+<a name="line-459"></a><a name="showDecimal'"></a><span class='definition'>showDecimal'</span> <span class='varid'>d</span>
+<a name="line-460"></a>    <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>d</span> <span class='varop'>==</span> <span class='num'>1</span>    	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d</span>
+<a name="line-461"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>times10</span> <span class='num'>0</span>        <span class='varop'>$</span> <span class='varid'>d</span>
+<a name="line-462"></a>    <span class='keyword'>where</span>
+<a name="line-463"></a>    <span class='varid'>times10</span> <span class='varid'>i'</span> <span class='varid'>d'</span>
+<a name="line-464"></a>	<span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>d'</span> <span class='varop'>==</span> <span class='num'>1</span>	<span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-465"></a>				  <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='varid'>i'</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d'</span>
+<a name="line-466"></a>				  <span class='keyword'>in</span>
+<a name="line-467"></a>				  <span class='varid'>reverse</span> <span class='varid'>y</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>reverse</span> <span class='varid'>x</span>
+<a name="line-468"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>times10</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>d'</span> <span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-469"></a>				  
+<a name="line-470"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-471"></a>
+<a name="line-472"></a><span class='comment'>-- | Tests whether a XML instance value matches a data-pattern.</span>
+<a name="line-473"></a><span class='comment'>-- (see also: 'stringValid')</span>
+<a name="line-474"></a>
+<a name="line-475"></a><a name="datatypeAllowsW3C"></a><span class='definition'>datatypeAllowsW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>
+<a name="line-476"></a><span class='definition'>datatypeAllowsW3C</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>value</span> <span class='keyword'>_</span>
+<a name="line-477"></a>    <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='varid'>value</span>
+<a name="line-478"></a>    <span class='keyword'>where</span>
+<a name="line-479"></a>    <span class='varid'>validString</span> <span class='varid'>normFct</span>
+<a name="line-480"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>
+<a name="line-481"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-482"></a>	  <span class='varid'>arr</span> <span class='varid'>normFct</span>
+<a name="line-483"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-484"></a>	  <span class='varid'>validLength</span>
+<a name="line-485"></a>
+<a name="line-486"></a>    <span class='varid'>validNormString</span>
+<a name="line-487"></a>	<span class='keyglyph'>=</span> <span class='varid'>validString</span> <span class='varid'>normalizeWhitespace</span>
+<a name="line-488"></a>
+<a name="line-489"></a>    <span class='varid'>validPattern</span>
+<a name="line-490"></a>	<span class='keyglyph'>=</span> <span class='varid'>patternValid</span> <span class='varid'>params</span>
+<a name="line-491"></a>
+<a name="line-492"></a>    <span class='varid'>validLength</span>
+<a name="line-493"></a>	<span class='keyglyph'>=</span> <span class='varid'>stringValid</span> <span class='varid'>d</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>params</span>
+<a name="line-494"></a>
+<a name="line-495"></a>    <span class='varid'>validList</span>
+<a name="line-496"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>
+<a name="line-497"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-498"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>
+<a name="line-499"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-500"></a>	  <span class='varid'>validListLength</span>
+<a name="line-501"></a>
+<a name="line-502"></a>    <span class='varid'>validListLength</span>
+<a name="line-503"></a>	<span class='keyglyph'>=</span> <span class='varid'>listValid</span> <span class='varid'>d</span> <span class='varid'>params</span>
+<a name="line-504"></a>
+<a name="line-505"></a>    <span class='varid'>validName</span> <span class='varid'>isN</span>
+<a name="line-506"></a>	<span class='keyglyph'>=</span> <span class='varid'>assertW3C</span> <span class='varid'>isN</span>
+<a name="line-507"></a>
+<a name="line-508"></a>    <span class='varid'>validNCName</span>
+<a name="line-509"></a>	<span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isNCName</span>
+<a name="line-510"></a>
+<a name="line-511"></a>    <span class='varid'>validQName</span>
+<a name="line-512"></a>	<span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isWellformedQualifiedName</span>
+<a name="line-513"></a>
+<a name="line-514"></a>    <span class='varid'>validDecimal</span>
+<a name="line-515"></a>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>
+<a name="line-516"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-517"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isDecimal</span>
+<a name="line-518"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-519"></a>	  <span class='varid'>checkWith</span> <span class='varid'>readDecimal</span> <span class='layout'>(</span><span class='varid'>decimalValid</span> <span class='varid'>params</span><span class='layout'>)</span>
+<a name="line-520"></a>
+<a name="line-521"></a>    <span class='varid'>validInteger</span> <span class='varid'>inRange</span>
+<a name="line-522"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>
+<a name="line-523"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-524"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>
+<a name="line-525"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-526"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isInteger</span>
+<a name="line-527"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-528"></a>	  <span class='varid'>checkWith</span> <span class='varid'>read</span> <span class='layout'>(</span><span class='varid'>integerValid</span> <span class='varid'>inRange</span> <span class='varid'>params</span><span class='layout'>)</span>
+<a name="line-529"></a>
+<a name="line-530"></a>    <span class='varid'>check</span>	<span class='keyglyph'>::</span> <span class='conid'>CheckString</span>
+<a name="line-531"></a>    <span class='varid'>check</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>notFound</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>checks</span>
+<a name="line-532"></a>
+<a name="line-533"></a>    <span class='varid'>notFound</span>	<span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span> <span class='varid'>params</span>
+<a name="line-534"></a>
+<a name="line-535"></a>    <span class='varid'>checks</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>CheckA</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-536"></a>    <span class='varid'>checks</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span>		<span class='varid'>validString</span> <span class='varid'>id</span><span class='layout'>)</span>
+<a name="line-537"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span>	<span class='varid'>validString</span> <span class='varid'>normalizeBlanks</span><span class='layout'>)</span>
+<a name="line-538"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span>			<span class='varid'>validNormString</span><span class='layout'>)</span>
+<a name="line-539"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span>		<span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isLanguage</span><span class='layout'>)</span>
+<a name="line-540"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span>		<span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span>
+<a name="line-541"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span>		<span class='varid'>validList</span>       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-542"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span>			<span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isName</span><span class='layout'>)</span>
+<a name="line-543"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span>		<span class='varid'>validNCName</span><span class='layout'>)</span>
+<a name="line-544"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span>			<span class='varid'>validNCName</span><span class='layout'>)</span>
+<a name="line-545"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span>			<span class='varid'>validNCName</span><span class='layout'>)</span>
+<a name="line-546"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span>		<span class='varid'>validList</span>       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNCName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-547"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span>		<span class='varid'>validNCName</span><span class='layout'>)</span>
+<a name="line-548"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span>		<span class='varid'>validList</span>       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNCName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-549"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span>		<span class='varid'>validName</span> <span class='varid'>isURIReference</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validString</span> <span class='varid'>escapeURI</span><span class='layout'>)</span>
+<a name="line-550"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span>			<span class='varid'>validQName</span><span class='layout'>)</span>
+<a name="line-551"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span>		<span class='varid'>validQName</span><span class='layout'>)</span>
+<a name="line-552"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span>		<span class='varid'>validString</span> <span class='varid'>id</span>         <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isHexBinary</span><span class='layout'>)</span>
+<a name="line-553"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span>		<span class='varid'>validString</span> <span class='varid'>normBase64</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isBase64Binary</span><span class='layout'>)</span>
+<a name="line-554"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span>		<span class='varid'>validPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validDecimal</span><span class='layout'>)</span>
+<a name="line-555"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_integer</span><span class='layout'>)</span>
+<a name="line-556"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>)</span>
+<a name="line-557"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_negativeInteger</span><span class='layout'>)</span>
+<a name="line-558"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>)</span>
+<a name="line-559"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span>	<span class='varid'>validInteger</span> <span class='varid'>xsd_positiveInteger</span><span class='layout'>)</span>
+<a name="line-560"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_long</span><span class='layout'>)</span>
+<a name="line-561"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_int</span><span class='layout'>)</span>
+<a name="line-562"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_short</span><span class='layout'>)</span>
+<a name="line-563"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span>			<span class='varid'>validInteger</span> <span class='varid'>xsd_byte</span><span class='layout'>)</span>
+<a name="line-564"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedLong</span><span class='layout'>)</span>
+<a name="line-565"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedInt</span><span class='layout'>)</span>
+<a name="line-566"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedShort</span><span class='layout'>)</span>
+<a name="line-567"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span>		<span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedByte</span><span class='layout'>)</span>
+<a name="line-568"></a>		  <span class='keyglyph'>]</span>
+<a name="line-569"></a>    <span class='varid'>assertW3C</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>p</span> <span class='varid'>errW3C</span>
+<a name="line-570"></a>    <span class='varid'>errW3C</span>	<span class='keyglyph'>=</span> <span class='varid'>errorMsgDataLibQName</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span>
+<a name="line-571"></a>
+<a name="line-572"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-573"></a>
+<a name="line-574"></a><span class='comment'>-- | Tests whether a XML instance value matches a value-pattern.</span>
+<a name="line-575"></a>
+<a name="line-576"></a><a name="datatypeEqualW3C"></a><span class='definition'>datatypeEqualW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>
+<a name="line-577"></a><span class='definition'>datatypeEqualW3C</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='keyword'>_</span> <span class='varid'>s2</span> <span class='keyword'>_</span>
+<a name="line-578"></a>    <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span>
+<a name="line-579"></a>    <span class='keyword'>where</span>
+<a name="line-580"></a>    <span class='varid'>check</span>	<span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-581"></a>    <span class='varid'>check</span>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>norm</span>
+<a name="line-582"></a>
+<a name="line-583"></a>    <span class='varid'>notFound</span>	<span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>errorMsgDataTypeNotAllowed0</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span><span class='layout'>)</span>
+<a name="line-584"></a>
+<a name="line-585"></a>    <span class='varid'>found</span> <span class='varid'>nf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>nf</span> <span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>nf</span> <span class='varid'>x2</span><span class='layout'>)</span><span class='layout'>)</span>			<span class='comment'>-- normalize both values</span>
+<a name="line-586"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-587"></a>		  <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varop'>$</span> <span class='varid'>errorMsgEqual</span> <span class='varid'>d</span><span class='layout'>)</span>	<span class='comment'>-- and check on (==)</span>
+<a name="line-588"></a>
+<a name="line-589"></a>    <span class='varid'>norm</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span>		<span class='varid'>id</span>			<span class='layout'>)</span>
+<a name="line-590"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span>	<span class='varid'>normalizeBlanks</span>		<span class='layout'>)</span>
+<a name="line-591"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-592"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-593"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-594"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-595"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span>			<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-596"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-597"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span>			<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-598"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-599"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-600"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-601"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-602"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span>		<span class='varid'>escapeURI</span> <span class='varop'>.</span> <span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-603"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-604"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span>		<span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-605"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span>		<span class='varid'>id</span>			<span class='layout'>)</span>
+<a name="line-606"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span>		<span class='varid'>normBase64</span>		<span class='layout'>)</span>
+<a name="line-607"></a>	   <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span>		<span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>readDecimal</span> <span class='varop'>.</span> <span class='varid'>normalizeWhitespace</span>	<span class='layout'>)</span>
+<a name="line-608"></a>	   <span class='keyglyph'>]</span>
+<a name="line-609"></a>
+<a name="line-610"></a><span class='comment'>-- ----------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
--- a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
@@ -47,259 +47,281 @@
 <a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>nullable</span>
 <a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>delta</span>
 <a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>matchWithRE</span>
-<a name="line-42"></a>    <span class='layout'>)</span>
-<a name="line-43"></a><span class='keyword'>where</span>
-<a name="line-44"></a>
-<a name="line-45"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;&amp;&amp;&gt;</span><span class='layout'>)</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;||&gt;</span><span class='layout'>)</span>
+<a name="line-44"></a>    <span class='layout'>)</span>
+<a name="line-45"></a><span class='keyword'>where</span>
 <a name="line-46"></a>
-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
 <a name="line-48"></a>
-<a name="line-49"></a><a name="Regex"></a><span class='keyword'>data</span> <span class='conid'>Regex</span>	<span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='conid'>String</span>
-<a name="line-50"></a>		<span class='keyglyph'>|</span> <span class='conid'>Unit</span>
-<a name="line-51"></a>		<span class='keyglyph'>|</span> <span class='conid'>Sym</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
-<a name="line-52"></a>		<span class='keyglyph'>|</span> <span class='conid'>Dot</span>
-<a name="line-53"></a>		<span class='keyglyph'>|</span> <span class='conid'>Star</span> <span class='conid'>Regex</span>
-<a name="line-54"></a>		<span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>
-<a name="line-55"></a>		<span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>
-<a name="line-56"></a>		<span class='keyglyph'>|</span> <span class='conid'>Rep</span> <span class='conid'>Int</span> <span class='conid'>Regex</span>		<span class='comment'>-- 1 or more repetitions</span>
-<a name="line-57"></a>		<span class='keyglyph'>|</span> <span class='conid'>Rng</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='conid'>Regex</span>	<span class='comment'>-- n..m repetitions</span>
-<a name="line-58"></a>		<span class='keyglyph'>|</span> <span class='conid'>Dif</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>	<span class='comment'>-- r1 - r2</span>
-<a name="line-59"></a>
-<a name="line-60"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-49"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-50"></a>
+<a name="line-51"></a><a name="Regex"></a><span class='keyword'>data</span> <span class='conid'>Regex</span>	<span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='conid'>String</span>
+<a name="line-52"></a>		<span class='keyglyph'>|</span> <span class='conid'>Unit</span>
+<a name="line-53"></a>		<span class='keyglyph'>|</span> <span class='conid'>Sym</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-54"></a>		<span class='keyglyph'>|</span> <span class='conid'>Dot</span>
+<a name="line-55"></a>		<span class='keyglyph'>|</span> <span class='conid'>Star</span> <span class='conid'>Regex</span>
+<a name="line-56"></a>		<span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>
+<a name="line-57"></a>		<span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>
+<a name="line-58"></a>		<span class='keyglyph'>|</span> <span class='conid'>Rep</span> <span class='conid'>Int</span> <span class='conid'>Regex</span>		<span class='comment'>-- 1 or more repetitions</span>
+<a name="line-59"></a>		<span class='keyglyph'>|</span> <span class='conid'>Rng</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='conid'>Regex</span>	<span class='comment'>-- n..m repetitions</span>
+<a name="line-60"></a>		<span class='keyglyph'>|</span> <span class='conid'>Dif</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>	<span class='comment'>-- r1 - r2</span>
 <a name="line-61"></a>
-<a name="line-62"></a><span class='comment'>{- just for documentation
+<a name="line-62"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-63"></a>
-<a name="line-64"></a>class Inv a where
-<a name="line-65"></a>    inv		:: a -&gt; Bool
-<a name="line-66"></a>
-<a name="line-67"></a>instance Inv Regex where
-<a name="line-68"></a>    inv (Zero _)	= True
-<a name="line-69"></a>    inv Unit		= True
-<a name="line-70"></a>    inv (Sym p)		= not . null . chars $ p
-<a name="line-71"></a>    inv Dot		= True
-<a name="line-72"></a>    inv (Star e)	= inv e
-<a name="line-73"></a>    inv (Alt e1 e2)	= inv e1 &amp;&amp;
-<a name="line-74"></a>			  inv e2
-<a name="line-75"></a>    inv (Seq e1 e2)	= inv e1 &amp;&amp;
+<a name="line-64"></a><span class='comment'>{- just for documentation
+<a name="line-65"></a>
+<a name="line-66"></a>class Inv a where
+<a name="line-67"></a>    inv		:: a -&gt; Bool
+<a name="line-68"></a>
+<a name="line-69"></a>instance Inv Regex where
+<a name="line-70"></a>    inv (Zero _)	= True
+<a name="line-71"></a>    inv Unit		= True
+<a name="line-72"></a>    inv (Sym p)		= not . null . chars $ p
+<a name="line-73"></a>    inv Dot		= True
+<a name="line-74"></a>    inv (Star e)	= inv e
+<a name="line-75"></a>    inv (Alt e1 e2)	= inv e1 &amp;&amp;
 <a name="line-76"></a>			  inv e2
-<a name="line-77"></a>    inv (Rep i e)	= i &gt; 0 &amp;&amp; inv e
-<a name="line-78"></a>    inv (Rng i j e)	= (i &lt; j || (i == j &amp;&amp; i &gt; 1)) &amp;&amp;
-<a name="line-79"></a>			  inv e
-<a name="line-80"></a>    inv (Dif e1 e2)	= inv e1 &amp;&amp;
-<a name="line-81"></a>			  inv e2
-<a name="line-82"></a>-}</span>
-<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-84"></a><span class='comment'>--</span>
-<a name="line-85"></a><span class='comment'>-- smart constructors</span>
-<a name="line-86"></a>
+<a name="line-77"></a>    inv (Seq e1 e2)	= inv e1 &amp;&amp;
+<a name="line-78"></a>			  inv e2
+<a name="line-79"></a>    inv (Rep i e)	= i &gt; 0 &amp;&amp; inv e
+<a name="line-80"></a>    inv (Rng i j e)	= (i &lt; j || (i == j &amp;&amp; i &gt; 1)) &amp;&amp;
+<a name="line-81"></a>			  inv e
+<a name="line-82"></a>    inv (Dif e1 e2)	= inv e1 &amp;&amp;
+<a name="line-83"></a>			  inv e2
+<a name="line-84"></a>-}</span>
+<a name="line-85"></a>
+<a name="line-86"></a><span class='comment'>-- ------------------------------------------------------------</span>
 <a name="line-87"></a><span class='comment'>-- | enumerate all chars specified by a predicate</span>
 <a name="line-88"></a><span class='comment'>--</span>
 <a name="line-89"></a><span class='comment'>-- this function is expensive, it should only be used for testing</span>
 <a name="line-90"></a>
-<a name="line-91"></a><a name="chars"></a><span class='definition'>chars</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span>
-<a name="line-92"></a><span class='definition'>chars</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>minBound</span> <span class='keyglyph'>..</span> <span class='varid'>maxBound</span><span class='keyglyph'>]</span>
+<a name="line-91"></a><a name="chars"></a><span class='definition'>chars</span>				<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span>
+<a name="line-92"></a><span class='definition'>chars</span> <span class='varid'>p</span>				<span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>minBound</span> <span class='keyglyph'>..</span> <span class='varid'>maxBound</span><span class='keyglyph'>]</span>
 <a name="line-93"></a>
-<a name="line-94"></a><a name="charRngs"></a><span class='definition'>charRngs</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-95"></a><span class='definition'>charRngs</span> <span class='conid'>[]</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-96"></a><span class='definition'>charRngs</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>charRng</span> <span class='varid'>x</span> <span class='varid'>xs</span>
-<a name="line-97"></a>                  <span class='keyword'>where</span>
-<a name="line-98"></a>		  <span class='varid'>charRng</span> <span class='varid'>y</span> <span class='conid'>[]</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='conid'>[]</span>
-<a name="line-99"></a>		  <span class='varid'>charRng</span> <span class='varid'>y</span> <span class='varid'>xs'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>x1</span><span class='conop'>:</span><span class='varid'>xs1</span><span class='layout'>)</span>
-<a name="line-100"></a>		      <span class='keyglyph'>|</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>succ</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>charRng</span> <span class='varid'>x1</span> <span class='varid'>xs1</span>
-<a name="line-101"></a>		      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>charRngs</span> <span class='varid'>xs'</span>
+<a name="line-94"></a><a name="charRngs"></a><span class='definition'>charRngs</span>			<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-95"></a><span class='definition'>charRngs</span> <span class='conid'>[]</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-96"></a><span class='definition'>charRngs</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>charRng</span> <span class='varid'>x</span> <span class='varid'>xs</span>
+<a name="line-97"></a>                  		<span class='keyword'>where</span>
+<a name="line-98"></a>		  		<span class='varid'>charRng</span> <span class='varid'>y</span> <span class='conid'>[]</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='conid'>[]</span>
+<a name="line-99"></a>		  		<span class='varid'>charRng</span> <span class='varid'>y</span> <span class='varid'>xs'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>x1</span><span class='conop'>:</span><span class='varid'>xs1</span><span class='layout'>)</span>
+<a name="line-100"></a>		      		    <span class='keyglyph'>|</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>succ</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>charRng</span> <span class='varid'>x1</span> <span class='varid'>xs1</span>
+<a name="line-101"></a>				    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>charRngs</span> <span class='varid'>xs'</span>
 <a name="line-102"></a>
-<a name="line-103"></a><a name="mkZero"></a><span class='definition'>mkZero</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-104"></a><span class='definition'>mkZero</span>		<span class='keyglyph'>=</span> <span class='conid'>Zero</span>
-<a name="line-105"></a>
-<a name="line-106"></a><a name="mkUnit"></a><span class='definition'>mkUnit</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span>
-<a name="line-107"></a><span class='definition'>mkUnit</span>		<span class='keyglyph'>=</span> <span class='conid'>Unit</span>
-<a name="line-108"></a>
-<a name="line-109"></a><a name="mkSym"></a><span class='definition'>mkSym</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-110"></a><span class='definition'>mkSym</span>		<span class='keyglyph'>=</span> <span class='conid'>Sym</span>
-<a name="line-111"></a>
-<a name="line-112"></a><a name="mkSym1"></a><span class='definition'>mkSym1</span>		<span class='keyglyph'>::</span> <span class='conid'>Char</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-113"></a><span class='definition'>mkSym1</span>	<span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-104"></a><span class='comment'>--</span>
+<a name="line-105"></a><span class='comment'>-- smart constructors</span>
+<a name="line-106"></a>
+<a name="line-107"></a><a name="mkZero"></a><span class='definition'>mkZero</span>				<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-108"></a><span class='definition'>mkZero</span>				<span class='keyglyph'>=</span> <span class='conid'>Zero</span>
+<a name="line-109"></a><span class='comment'>{-# INLINE mkZero #-}</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="mkUnit"></a><span class='definition'>mkUnit</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span>
+<a name="line-112"></a><span class='definition'>mkUnit</span>				<span class='keyglyph'>=</span> <span class='conid'>Unit</span>
+<a name="line-113"></a><span class='comment'>{-# INLINE mkUnit #-}</span>
 <a name="line-114"></a>
-<a name="line-115"></a><a name="mkSymRng"></a><span class='definition'>mkSymRng</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-116"></a><span class='definition'>mkSymRng</span> <span class='varid'>c1</span> <span class='varid'>c2</span>
-<a name="line-117"></a>    <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>==</span> <span class='varid'>minBound</span> <span class='varop'>&amp;&amp;</span>
-<a name="line-118"></a>      <span class='varid'>c2</span> <span class='varop'>==</span> <span class='varid'>maxBound</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDot</span>
-<a name="line-119"></a>    <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>&lt;=</span> <span class='varid'>c2</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSym</span>  <span class='varop'>$</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span> <span class='varop'>&gt;=</span> <span class='varid'>c1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>x</span><span class='varop'>&lt;=</span> <span class='varid'>c2</span> <span class='layout'>)</span>
-<a name="line-120"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span> <span class='str'>"empty char range"</span>
+<a name="line-115"></a><a name="mkSym"></a><span class='definition'>mkSym</span>				<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-116"></a><span class='definition'>mkSym</span>				<span class='keyglyph'>=</span> <span class='conid'>Sym</span>
+<a name="line-117"></a><span class='comment'>{-# INLINE mkSym #-}</span>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="mkSym1"></a><span class='definition'>mkSym1</span>				<span class='keyglyph'>::</span> <span class='conid'>Char</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-120"></a><span class='definition'>mkSym1</span>	<span class='varid'>c</span>			<span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>c</span><span class='layout'>)</span>
 <a name="line-121"></a>
-<a name="line-122"></a><a name="mkDot"></a><span class='definition'>mkDot</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span>
-<a name="line-123"></a><span class='definition'>mkDot</span>	<span class='keyglyph'>=</span> <span class='conid'>Dot</span>
-<a name="line-124"></a>
-<a name="line-125"></a><a name="mkStar"></a><span class='definition'>mkStar</span>			<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-126"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>		<span class='comment'>-- {}* == ()</span>
-<a name="line-127"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>			<span class='comment'>-- ()* == ()</span>
-<a name="line-128"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='sel'>_e1</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>			<span class='comment'>-- (r*)* == r*</span>
-<a name="line-129"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e1</span>		<span class='comment'>-- (r+)* == r*</span>
-<a name="line-130"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='comment'>-- (a*|b)* == (a|b)*</span>
-<a name="line-131"></a><span class='definition'>mkStar</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='varid'>e</span>
+<a name="line-122"></a><a name="mkSymRng"></a><span class='definition'>mkSymRng</span>			<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-123"></a><span class='definition'>mkSymRng</span> <span class='varid'>c1</span> <span class='varid'>c2</span>
+<a name="line-124"></a>    <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>==</span> <span class='varid'>minBound</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-125"></a>      <span class='varid'>c2</span> <span class='varop'>==</span> <span class='varid'>maxBound</span>		<span class='keyglyph'>=</span> <span class='varid'>mkDot</span>
+<a name="line-126"></a>    <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>&lt;=</span> <span class='varid'>c2</span>			<span class='keyglyph'>=</span> <span class='varid'>mkSym</span>  <span class='varop'>$</span> <span class='layout'>(</span><span class='varop'>&gt;=</span> <span class='varid'>c1</span><span class='layout'>)</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span> <span class='varid'>c2</span><span class='layout'>)</span>
+<a name="line-127"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span> <span class='str'>"empty char range"</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="mkDot"></a><span class='definition'>mkDot</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span>
+<a name="line-130"></a><span class='definition'>mkDot</span>				<span class='keyglyph'>=</span> <span class='conid'>Dot</span>
+<a name="line-131"></a><span class='comment'>{-# INLINE mkDot #-}</span>
 <a name="line-132"></a>
-<a name="line-133"></a><a name="rmStar"></a><span class='definition'>rmStar</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-134"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e2</span><span class='layout'>)</span>
-<a name="line-135"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>
-<a name="line-136"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>
-<a name="line-137"></a><span class='definition'>rmStar</span> <span class='varid'>e1</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
-<a name="line-138"></a>
-<a name="line-139"></a><a name="mkAlt"></a><span class='definition'>mkAlt</span>					<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-140"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span>            <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>				<span class='comment'>-- e1 u {} = e1</span>
-<a name="line-141"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>      <span class='varid'>e2</span>			<span class='keyglyph'>=</span> <span class='varid'>e2</span>				<span class='comment'>-- {} u e2 = e2</span>
-<a name="line-142"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='sel'>_e2</span>			<span class='keyglyph'>=</span> <span class='varid'>e1</span>				<span class='comment'>-- A* u e1 = A*</span>
-<a name="line-143"></a><span class='definition'>mkAlt</span> <span class='sel'>_e1</span>           <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e2</span>				<span class='comment'>-- e1 u A* = A*</span>
-<a name="line-144"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span>      <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>||</span> <span class='varid'>p2</span> <span class='varid'>x</span>	<span class='comment'>-- melting of predicates</span>
-<a name="line-145"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span>            <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e1</span>			<span class='comment'>-- symmetry: predicates always first</span>
-<a name="line-146"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>e3</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span>	<span class='comment'>-- prepare melting of predicates</span>
-<a name="line-147"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>   <span class='varid'>e3</span>			<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span>	<span class='comment'>-- associativity</span>
-<a name="line-148"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span>				<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
-<a name="line-149"></a>
-<a name="line-150"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-151"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
-<a name="line-152"></a><span class='definition'>mkSeq</span> <span class='sel'>_e1</span>         <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e2</span>
-<a name="line-153"></a><span class='definition'>mkSeq</span> <span class='conid'>Unit</span>        <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='varid'>e2</span>
-<a name="line-154"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span>          <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
-<a name="line-155"></a><span class='definition'>mkSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span>
-<a name="line-156"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span> <span class='varid'>e2</span>			<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
+<a name="line-133"></a><a name="mkStar"></a><span class='definition'>mkStar</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-134"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>		<span class='comment'>-- {}* == ()</span>
+<a name="line-135"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span>			<span class='keyglyph'>=</span> <span class='varid'>e</span>			<span class='comment'>-- ()* == ()</span>
+<a name="line-136"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='sel'>_e1</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>			<span class='comment'>-- (r*)* == r*</span>
+<a name="line-137"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e1</span>		<span class='comment'>-- (r+)* == r*</span>
+<a name="line-138"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='comment'>-- (a*|b)* == (a|b)*</span>
+<a name="line-139"></a><span class='definition'>mkStar</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='varid'>e</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="rmStar"></a><span class='definition'>rmStar</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-142"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e2</span><span class='layout'>)</span>
+<a name="line-143"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>
+<a name="line-144"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>
+<a name="line-145"></a><span class='definition'>rmStar</span> <span class='varid'>e1</span>			<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-146"></a>
+<a name="line-147"></a><a name="mkAlt"></a><span class='definition'>mkAlt</span>					<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-148"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span>            <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>				<span class='comment'>-- e1 u {} = e1</span>
+<a name="line-149"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>      <span class='varid'>e2</span>			<span class='keyglyph'>=</span> <span class='varid'>e2</span>				<span class='comment'>-- {} u e2 = e2</span>
+<a name="line-150"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='sel'>_e2</span>			<span class='keyglyph'>=</span> <span class='varid'>e1</span>				<span class='comment'>-- A* u e1 = A*</span>
+<a name="line-151"></a><span class='definition'>mkAlt</span> <span class='sel'>_e1</span>           <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e2</span>				<span class='comment'>-- e1 u A* = A*</span>
+<a name="line-152"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span>      <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='varop'>$</span> <span class='varid'>p1</span> <span class='varop'>&lt;||&gt;</span> <span class='varid'>p2</span>		<span class='comment'>-- melting of predicates</span>
+<a name="line-153"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span>            <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e1</span>			<span class='comment'>-- symmetry: predicates always first</span>
+<a name="line-154"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>e3</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span>	<span class='comment'>-- prepare melting of predicates</span>
+<a name="line-155"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>   <span class='varid'>e3</span>			<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span>	<span class='comment'>-- associativity</span>
+<a name="line-156"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span>				<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
 <a name="line-157"></a>
-<a name="line-158"></a><a name="mkRep"></a><span class='definition'>mkRep</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-159"></a><span class='definition'>mkRep</span> <span class='num'>0</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e</span>
-<a name="line-160"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-161"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span>			<span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-162"></a><span class='definition'>mkRep</span> <span class='varid'>i</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span>
-<a name="line-163"></a>
-<a name="line-164"></a><a name="mkRng"></a><span class='definition'>mkRng</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-165"></a><span class='definition'>mkRng</span> <span class='num'>0</span>  <span class='num'>0</span>  <span class='sel'>_e</span>			<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>
-<a name="line-166"></a><span class='definition'>mkRng</span> <span class='num'>1</span>  <span class='num'>1</span>  <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-167"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='sel'>_e</span>
-<a name="line-168"></a>    <span class='keyglyph'>|</span> <span class='varid'>lb</span> <span class='varop'>&gt;</span> <span class='varid'>ub</span>			<span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='varop'>$</span>
-<a name="line-169"></a>				  <span class='str'>"illegal range "</span> <span class='varop'>++</span>
-<a name="line-170"></a>				  <span class='varid'>show</span> <span class='varid'>lb</span> <span class='varop'>++</span> <span class='str'>".."</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>ub</span>
-<a name="line-171"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-172"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-173"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='conid'>Rng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span>
-<a name="line-174"></a>
-<a name="line-175"></a><a name="mkOpt"></a><span class='definition'>mkOpt</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-176"></a><span class='definition'>mkOpt</span>	<span class='keyglyph'>=</span> <span class='varid'>mkRng</span> <span class='num'>0</span> <span class='num'>1</span>
-<a name="line-177"></a>
-<a name="line-178"></a><a name="mkDif"></a><span class='definition'>mkDif</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-179"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
-<a name="line-180"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span>          <span class='layout'>(</span><span class='conid'>Zero</span>	<span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e1</span>
-<a name="line-181"></a><span class='definition'>mkDif</span> <span class='sel'>_e1</span>         <span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set in difference expr"</span>
-<a name="line-182"></a><span class='definition'>mkDif</span> <span class='conid'>Dot</span>         <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>p</span><span class='layout'>)</span>
-<a name="line-183"></a><span class='definition'>mkDif</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span>     <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>
-<a name="line-184"></a><span class='definition'>mkDif</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span>    <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span>
-<a name="line-185"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>chars</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>p2</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-186"></a>				<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>
-<a name="line-187"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span>          <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
-<a name="line-188"></a>
-<a name="line-189"></a><a name="mkCompl"></a><span class='definition'>mkCompl</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-190"></a><span class='definition'>mkCompl</span>		<span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='varid'>mkDot</span>
-<a name="line-191"></a>
-<a name="line-192"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-193"></a>
-<a name="line-194"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Regex</span> <span class='keyword'>where</span>
-<a name="line-195"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"{err:"</span> <span class='varop'>++</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>"}"</span>
-<a name="line-196"></a>    <span class='varid'>show</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='str'>"()"</span>
-<a name="line-197"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>
-<a name="line-198"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span>
-<a name="line-199"></a>	  <span class='varid'>rng1</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>
-<a name="line-200"></a>			<span class='keyglyph'>=</span> <span class='varid'>escRng</span> <span class='varop'>.</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>cs</span>
-<a name="line-201"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>concat</span> <span class='varid'>cs'</span> <span class='varop'>++</span> <span class='str'>"]"</span>
-<a name="line-202"></a>			  <span class='keyword'>where</span>
-<a name="line-203"></a>			  <span class='varid'>rng1</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>
-<a name="line-204"></a>			  <span class='varid'>cs</span>		<span class='keyglyph'>=</span> <span class='varid'>charRngs</span> <span class='varop'>.</span> <span class='varid'>chars</span> <span class='varop'>$</span> <span class='varid'>p</span>
-<a name="line-205"></a>			  <span class='varid'>cs'</span> 		<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>escRng</span> <span class='varid'>cs</span>
-<a name="line-206"></a>			  <span class='varid'>escRng</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span>
-<a name="line-207"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span>
-<a name="line-208"></a>			      <span class='keyglyph'>|</span> <span class='varid'>succ</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>
-<a name="line-209"></a>				        <span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span>        <span class='varop'>++</span> <span class='varid'>esc</span> <span class='varid'>y</span>
-<a name="line-210"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-211"></a>					<span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>"-"</span> <span class='varop'>++</span> <span class='varid'>esc</span> <span class='varid'>y</span>
-<a name="line-212"></a>			  <span class='varid'>esc</span> <span class='varid'>x</span>
-<a name="line-213"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>`elem`</span> <span class='str'>"\\-[]{}()*+?.^"</span>
-<a name="line-214"></a>				  	<span class='keyglyph'>=</span> <span class='chr'>'\\'</span><span class='conop'>:</span><span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</span>
-<a name="line-215"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>&gt;=</span> <span class='chr'>' '</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>x</span> <span class='varop'>&lt;=</span> <span class='chr'>'~'</span>
-<a name="line-216"></a>				  	<span class='keyglyph'>=</span> <span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</span>
-<a name="line-217"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-218"></a>				  	<span class='keyglyph'>=</span> <span class='str'>"&amp;#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>";"</span>
-<a name="line-219"></a>    <span class='varid'>show</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='str'>"."</span>
-<a name="line-220"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>
-<a name="line-221"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>
-<a name="line-222"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span>
-<a name="line-223"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>
-<a name="line-224"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>",}"</span>
-<a name="line-225"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='num'>0</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>
-<a name="line-226"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>","</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>j</span> <span class='varop'>++</span> <span class='str'>"}"</span>
-<a name="line-227"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"-"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>
-<a name="line-228"></a>
-<a name="line-229"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-230"></a>
-<a name="line-231"></a><a name="isZero"></a><span class='definition'>isZero</span>			<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-232"></a><span class='definition'>isZero</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-233"></a><span class='definition'>isZero</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-234"></a>
-<a name="line-235"></a><a name="nullable"></a><span class='definition'>nullable</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-236"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-237"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-238"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='sel'>_p</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>		<span class='comment'>-- assumption: p holds for at least one char</span>
-<a name="line-239"></a><span class='definition'>nullable</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-240"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-241"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>||</span>
-<a name="line-242"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
-<a name="line-243"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&amp;&amp;</span>
-<a name="line-244"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
-<a name="line-245"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='sel'>_i</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span>
-<a name="line-246"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='varop'>||</span>
-<a name="line-247"></a>			  <span class='varid'>nullable</span> <span class='varid'>e</span>
-<a name="line-248"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&amp;&amp;</span>
-<a name="line-249"></a>			  <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>nullable</span> <span class='varid'>e2</span><span class='layout'>)</span>
-<a name="line-250"></a>
-<a name="line-251"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-252"></a>
-<a name="line-253"></a><a name="delta"></a><span class='definition'>delta</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-254"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-255"></a><span class='definition'>delta</span> <span class='conid'>Unit</span>        <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>
-<a name="line-256"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>
-<a name="line-257"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>     <span class='varid'>c</span>
-<a name="line-258"></a>    <span class='keyglyph'>|</span> <span class='varid'>p</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>
-<a name="line-259"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>
-<a name="line-260"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='str'>", expected: "</span> <span class='varop'>++</span> <span class='varid'>oneof</span> <span class='varop'>++</span> <span class='varid'>chars'</span>
-<a name="line-261"></a>                          <span class='keyword'>where</span>
-<a name="line-262"></a>			  <span class='layout'>(</span><span class='varid'>cs</span><span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>40</span> <span class='layout'>(</span><span class='varid'>chars</span> <span class='varid'>p</span><span class='layout'>)</span>
-<a name="line-263"></a>			  <span class='varid'>oneof</span>
-<a name="line-264"></a>			      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>""</span>
-<a name="line-265"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>      <span class='keyglyph'>=</span> <span class='str'>"one of "</span>
-<a name="line-266"></a>			  <span class='varid'>chars'</span>
-<a name="line-267"></a>			      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"'"</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"'"</span>
-<a name="line-268"></a>			      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ds</span>   <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"]"</span>
-<a name="line-269"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"...]"</span>
-<a name="line-270"></a>
-<a name="line-271"></a><span class='definition'>delta</span> <span class='conid'>Dot</span>         <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>
-<a name="line-272"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e</span>
-<a name="line-273"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-274"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>
-<a name="line-275"></a>    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e1</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-276"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span>
-<a name="line-277"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span>   <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRep</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>
-<a name="line-278"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRng</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>`max`</span> <span class='num'>0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>j</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>
-<a name="line-279"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>
-<a name="line-280"></a>
-<a name="line-281"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-282"></a>
-<a name="line-283"></a><a name="delta'"></a><span class='definition'>delta'</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
-<a name="line-284"></a><span class='definition'>delta'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>
-<a name="line-285"></a>
-<a name="line-286"></a><a name="matchWithRE"></a><span class='definition'>matchWithRE</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
-<a name="line-287"></a><span class='definition'>matchWithRE</span> <span class='varid'>e</span>
-<a name="line-288"></a>    <span class='keyglyph'>=</span> <span class='varid'>res</span> <span class='varop'>.</span> <span class='varid'>delta'</span> <span class='varid'>e</span>
-<a name="line-289"></a>    <span class='keyword'>where</span>
-<a name="line-290"></a>    <span class='varid'>res</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>err</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>err</span>
-<a name="line-291"></a>    <span class='varid'>res</span> <span class='varid'>re</span>
-<a name="line-292"></a>	<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>	<span class='comment'>-- o.k.</span>
-<a name="line-293"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='str'>"input does not match "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span>
+<a name="line-158"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-159"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-160"></a><span class='definition'>mkSeq</span> <span class='sel'>_e1</span>         <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e2</span>
+<a name="line-161"></a><span class='definition'>mkSeq</span> <span class='conid'>Unit</span>        <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='varid'>e2</span>
+<a name="line-162"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span>          <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-163"></a><span class='definition'>mkSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span>
+<a name="line-164"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span> <span class='varid'>e2</span>			<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
+<a name="line-165"></a>
+<a name="line-166"></a><a name="mkRep"></a><span class='definition'>mkRep</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-167"></a><span class='definition'>mkRep</span> <span class='num'>0</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e</span>
+<a name="line-168"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-169"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span>			<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-170"></a><span class='definition'>mkRep</span> <span class='varid'>i</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="mkRng"></a><span class='definition'>mkRng</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-173"></a><span class='definition'>mkRng</span> <span class='num'>0</span>  <span class='num'>0</span>  <span class='sel'>_e</span>			<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>
+<a name="line-174"></a><span class='definition'>mkRng</span> <span class='num'>1</span>  <span class='num'>1</span>  <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-175"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='sel'>_e</span>
+<a name="line-176"></a>    <span class='keyglyph'>|</span> <span class='varid'>lb</span> <span class='varop'>&gt;</span> <span class='varid'>ub</span>			<span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='varop'>$</span>
+<a name="line-177"></a>				  <span class='str'>"illegal range "</span> <span class='varop'>++</span>
+<a name="line-178"></a>				  <span class='varid'>show</span> <span class='varid'>lb</span> <span class='varop'>++</span> <span class='str'>".."</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>ub</span>
+<a name="line-179"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-180"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-181"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='conid'>Rng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span>
+<a name="line-182"></a>
+<a name="line-183"></a><a name="mkOpt"></a><span class='definition'>mkOpt</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-184"></a><span class='definition'>mkOpt</span>				<span class='keyglyph'>=</span> <span class='varid'>mkRng</span> <span class='num'>0</span> <span class='num'>1</span>
+<a name="line-185"></a>
+<a name="line-186"></a><a name="mkDif"></a><span class='definition'>mkDif</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-187"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-188"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span>          <span class='layout'>(</span><span class='conid'>Zero</span>	<span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-189"></a><span class='definition'>mkDif</span> <span class='sel'>_e1</span>         <span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set in difference expr"</span>
+<a name="line-190"></a><span class='definition'>mkDif</span> <span class='conid'>Dot</span>         <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-191"></a><span class='definition'>mkDif</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span>     <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>
+<a name="line-192"></a><span class='definition'>mkDif</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span>    <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-193"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>chars</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>p2</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-194"></a>				<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>
+<a name="line-195"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span>          <span class='varid'>e2</span>		<span class='keyglyph'>=</span> <span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span>
+<a name="line-196"></a>
+<a name="line-197"></a><a name="mkCompl"></a><span class='definition'>mkCompl</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-198"></a><span class='definition'>mkCompl</span>				<span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='varid'>mkDot</span>
+<a name="line-199"></a>
+<a name="line-200"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-201"></a>
+<a name="line-202"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Regex</span> <span class='keyword'>where</span>
+<a name="line-203"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"{err:"</span> <span class='varop'>++</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>"}"</span>
+<a name="line-204"></a>    <span class='varid'>show</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='str'>"()"</span>
+<a name="line-205"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-206"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-207"></a>	  <span class='varid'>rng1</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-208"></a>			<span class='keyglyph'>=</span> <span class='varid'>escRng</span> <span class='varop'>.</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>cs</span>
+<a name="line-209"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>concat</span> <span class='varid'>cs'</span> <span class='varop'>++</span> <span class='str'>"]"</span>
+<a name="line-210"></a>			  <span class='keyword'>where</span>
+<a name="line-211"></a>			  <span class='varid'>rng1</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>
+<a name="line-212"></a>			  <span class='varid'>cs</span>		<span class='keyglyph'>=</span> <span class='varid'>charRngs</span> <span class='varop'>.</span> <span class='varid'>chars</span> <span class='varop'>$</span> <span class='varid'>p</span>
+<a name="line-213"></a>			  <span class='varid'>cs'</span> 		<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>escRng</span> <span class='varid'>cs</span>
+<a name="line-214"></a>			  <span class='varid'>escRng</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-215"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span>
+<a name="line-216"></a>			      <span class='keyglyph'>|</span> <span class='varid'>succ</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>
+<a name="line-217"></a>				        <span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span>        <span class='varop'>++</span> <span class='varid'>esc</span> <span class='varid'>y</span>
+<a name="line-218"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-219"></a>					<span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>"-"</span> <span class='varop'>++</span> <span class='varid'>esc</span> <span class='varid'>y</span>
+<a name="line-220"></a>			  <span class='varid'>esc</span> <span class='varid'>x</span>
+<a name="line-221"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>`elem`</span> <span class='str'>"\\-[]{}()*+?.^"</span>
+<a name="line-222"></a>				  	<span class='keyglyph'>=</span> <span class='chr'>'\\'</span><span class='conop'>:</span><span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</span>
+<a name="line-223"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>&gt;=</span> <span class='chr'>' '</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>x</span> <span class='varop'>&lt;=</span> <span class='chr'>'~'</span>
+<a name="line-224"></a>				  	<span class='keyglyph'>=</span> <span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</span>
+<a name="line-225"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-226"></a>				  	<span class='keyglyph'>=</span> <span class='str'>"&amp;#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>";"</span>
+<a name="line-227"></a>    <span class='varid'>show</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='str'>"."</span>
+<a name="line-228"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>
+<a name="line-229"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-230"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span>
+<a name="line-231"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>
+<a name="line-232"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>",}"</span>
+<a name="line-233"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='num'>0</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>
+<a name="line-234"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>","</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>j</span> <span class='varop'>++</span> <span class='str'>"}"</span>
+<a name="line-235"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"-"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-236"></a>
+<a name="line-237"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-238"></a>
+<a name="line-239"></a><a name="isZero"></a><span class='definition'>isZero</span>			<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-240"></a><span class='definition'>isZero</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-241"></a><span class='definition'>isZero</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-242"></a><span class='comment'>{-# INLINE isZero #-}</span>
+<a name="line-243"></a>
+<a name="line-244"></a><a name="nullable"></a><span class='definition'>nullable</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-245"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-246"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-247"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='sel'>_p</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>		<span class='comment'>-- assumption: p holds for at least one char</span>
+<a name="line-248"></a><span class='definition'>nullable</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-249"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-250"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>||</span>
+<a name="line-251"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
+<a name="line-252"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-253"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
+<a name="line-254"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='sel'>_i</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span>
+<a name="line-255"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='varop'>||</span>
+<a name="line-256"></a>			  <span class='varid'>nullable</span> <span class='varid'>e</span>
+<a name="line-257"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-258"></a>			  <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>nullable</span> <span class='varid'>e2</span><span class='layout'>)</span>
+<a name="line-259"></a>
+<a name="line-260"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="delta"></a><span class='definition'>delta</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-263"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-264"></a><span class='definition'>delta</span> <span class='conid'>Unit</span>        <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>
+<a name="line-265"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>
+<a name="line-266"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>     <span class='varid'>c</span>
+<a name="line-267"></a>    <span class='keyglyph'>|</span> <span class='varid'>p</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>
+<a name="line-268"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>
+<a name="line-269"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='str'>", expected: "</span> <span class='varop'>++</span> <span class='varid'>oneof</span> <span class='varop'>++</span> <span class='varid'>chars'</span>
+<a name="line-270"></a>                          <span class='keyword'>where</span>
+<a name="line-271"></a>			  <span class='layout'>(</span><span class='varid'>cs</span><span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>40</span> <span class='layout'>(</span><span class='varid'>chars</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-272"></a>			  <span class='varid'>oneof</span>
+<a name="line-273"></a>			      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-274"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>      <span class='keyglyph'>=</span> <span class='str'>"one of "</span>
+<a name="line-275"></a>			  <span class='varid'>chars'</span>
+<a name="line-276"></a>			      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"'"</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"'"</span>
+<a name="line-277"></a>			      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ds</span>   <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"]"</span>
+<a name="line-278"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"...]"</span>
+<a name="line-279"></a>
+<a name="line-280"></a><span class='definition'>delta</span> <span class='conid'>Dot</span>         <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>
+<a name="line-281"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e</span>
+<a name="line-282"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-283"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-284"></a>    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e1</span>	<span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-285"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span>
+<a name="line-286"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span>   <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRep</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-287"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRng</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>`max`</span> <span class='num'>0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>j</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-288"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-289"></a>
+<a name="line-290"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-291"></a>
+<a name="line-292"></a><a name="delta'"></a><span class='definition'>delta'</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>
+<a name="line-293"></a><span class='definition'>delta'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>
 <a name="line-294"></a>
-<a name="line-295"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-295"></a><a name="matchWithRE"></a><span class='definition'>matchWithRE</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-296"></a><span class='definition'>matchWithRE</span> <span class='varid'>e</span>
+<a name="line-297"></a>    <span class='keyglyph'>=</span> <span class='varid'>res</span> <span class='varop'>.</span> <span class='varid'>delta'</span> <span class='varid'>e</span>
+<a name="line-298"></a>    <span class='keyword'>where</span>
+<a name="line-299"></a>    <span class='varid'>res</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>err</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>err</span>
+<a name="line-300"></a>    <span class='varid'>res</span> <span class='varid'>re</span>
+<a name="line-301"></a>	<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>	<span class='comment'>-- o.k.</span>
+<a name="line-302"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='str'>"input does not match "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span>
+<a name="line-303"></a>
+<a name="line-304"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-305"></a>
+<a name="line-306"></a><a name="<&&>"></a><span class='layout'>(</span><span class='varop'>&lt;&amp;&amp;&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-307"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>g</span> <span class='varid'>x</span>		<span class='comment'>-- liftA2 (&amp;&amp;)</span>
+<a name="line-308"></a>
+<a name="line-309"></a><span class='comment'>{-# INLINE (&lt;&amp;&amp;&gt;) #-}</span>
+<a name="line-310"></a>
+<a name="line-311"></a>
+<a name="line-312"></a><a name="<||>"></a><span class='layout'>(</span><span class='varop'>&lt;||&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-313"></a><span class='definition'>f</span> <span class='varop'>&lt;||&gt;</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>||</span> <span class='varid'>g</span> <span class='varid'>x</span>		<span class='comment'>-- liftA2 (||)</span>
+<a name="line-314"></a>
+<a name="line-315"></a><span class='comment'>{-# INLINE (&lt;||&gt;) #-}</span>
+<a name="line-316"></a>
+<a name="line-317"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
--- a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
@@ -45,198 +45,204 @@
 <a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>
 <a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>
 <a name="line-39"></a>
-<a name="line-40"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-41"></a>
-<a name="line-42"></a>
-<a name="line-43"></a><a name="splitRegex"></a><span class='definition'>splitRegex</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-44"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='str'>""</span>
-<a name="line-45"></a>    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span>
-<a name="line-46"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-47"></a>
-<a name="line-48"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='varid'>inp</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>inp'</span><span class='layout'>)</span>
-<a name="line-49"></a>    <span class='keyglyph'>|</span> <span class='varid'>isZero</span>   <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-50"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>re</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>inp'</span>
-<a name="line-51"></a>    <span class='keyword'>where</span>
-<a name="line-52"></a>    <span class='varid'>evalRes</span> <span class='conid'>Nothing</span>
-<a name="line-53"></a>	<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>inp</span><span class='layout'>)</span>
-<a name="line-54"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
-<a name="line-55"></a>
-<a name="line-56"></a>    <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-57"></a>	    		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
-<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-40"></a><span class='comment'>{-
+<a name="line-41"></a>import qualified Debug.Trace as T
+<a name="line-42"></a>-}</span>
+<a name="line-43"></a>
+<a name="line-44"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="splitRegex"></a><span class='definition'>splitRegex</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-47"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='str'>""</span>
+<a name="line-48"></a>    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-49"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='varid'>inp</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>inp'</span><span class='layout'>)</span>
+<a name="line-52"></a>    <span class='keyglyph'>|</span> <span class='varid'>isZero</span>   <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-53"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='comment'>{- (T.trace (show re') re') -}</span> <span class='varid'>re'</span> <span class='varop'>$</span> <span class='varid'>inp'</span>
+<a name="line-54"></a>    <span class='keyword'>where</span>
+<a name="line-55"></a>    <span class='varid'>re'</span> <span class='keyglyph'>=</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='varid'>c</span>
+<a name="line-56"></a>    <span class='varid'>evalRes</span> <span class='conid'>Nothing</span>
+<a name="line-57"></a>	<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>inp</span><span class='layout'>)</span>
+<a name="line-58"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
 <a name="line-59"></a>
-<a name="line-60"></a><span class='comment'>-- | split a string by taking the longest prefix matching a regular expression</span>
-<a name="line-61"></a><span class='comment'>--</span>
-<a name="line-62"></a><span class='comment'>-- @Nothing@ is returned in case of a syntactically wrong regex string</span>
-<a name="line-63"></a><span class='comment'>-- or in case there is no matching prefix, else the pair of prefix and rest is returned</span>
-<a name="line-64"></a><span class='comment'>--</span>
-<a name="line-65"></a><span class='comment'>-- examples:</span>
+<a name="line-60"></a>    <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-61"></a>	    		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='comment'>-- | split a string by taking the longest prefix matching a regular expression</span>
 <a name="line-66"></a><span class='comment'>--</span>
-<a name="line-67"></a><span class='comment'>-- &gt; splitRE "a*b" "abc" = Just ("ab","c")</span>
-<a name="line-68"></a><span class='comment'>-- &gt; splitRE "a*"  "bc"  = Just ("", "bc)</span>
-<a name="line-69"></a><span class='comment'>-- &gt; splitRE "["   "abc" = Nothing</span>
-<a name="line-70"></a>
-<a name="line-71"></a><a name="splitRE"></a><span class='definition'>splitRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-72"></a><span class='definition'>splitRE</span> <span class='varid'>re</span> <span class='varid'>input</span>
-<a name="line-73"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>splitRegex</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>parseRegex</span> <span class='varop'>$</span> <span class='varid'>re</span>
-<a name="line-74"></a>
-<a name="line-75"></a><span class='comment'>-- | convenient function for splitRE</span>
-<a name="line-76"></a><span class='comment'>--</span>
-<a name="line-77"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no matching prefix found</span>
-<a name="line-78"></a>
-<a name="line-79"></a><a name="split"></a><span class='definition'>split</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-80"></a><span class='definition'>split</span> <span class='varid'>re</span> <span class='varid'>input</span>
-<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitRE</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>input</span>
-<a name="line-82"></a>
-<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-67"></a><span class='comment'>-- @Nothing@ is returned in case of a syntactically wrong regex string</span>
+<a name="line-68"></a><span class='comment'>-- or in case there is no matching prefix, else the pair of prefix and rest is returned</span>
+<a name="line-69"></a><span class='comment'>--</span>
+<a name="line-70"></a><span class='comment'>-- examples:</span>
+<a name="line-71"></a><span class='comment'>--</span>
+<a name="line-72"></a><span class='comment'>-- &gt; splitRE "a*b" "abc" = Just ("ab","c")</span>
+<a name="line-73"></a><span class='comment'>-- &gt; splitRE "a*"  "bc"  = Just ("", "bc")</span>
+<a name="line-74"></a><span class='comment'>-- &gt; splitRE "a+"  "bc"  = Nothing</span>
+<a name="line-75"></a><span class='comment'>-- &gt; splitRE "["   "abc" = Nothing</span>
+<a name="line-76"></a>
+<a name="line-77"></a><a name="splitRE"></a><span class='definition'>splitRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-78"></a><span class='definition'>splitRE</span> <span class='varid'>re</span> <span class='varid'>input</span>
+<a name="line-79"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>splitRegex</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>parseRegex</span> <span class='varop'>$</span> <span class='varid'>re</span>
+<a name="line-80"></a>
+<a name="line-81"></a><span class='comment'>-- | convenient function for splitRE</span>
+<a name="line-82"></a><span class='comment'>--</span>
+<a name="line-83"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no matching prefix found</span>
 <a name="line-84"></a>
-<a name="line-85"></a><span class='comment'>-- | split a string into tokens (words) by giving a regular expression</span>
-<a name="line-86"></a><span class='comment'>-- which all tokens must match</span>
-<a name="line-87"></a><span class='comment'>--</span>
-<a name="line-88"></a><span class='comment'>-- This can be used for simple tokenizers.</span>
-<a name="line-89"></a><span class='comment'>-- The words in the result list contain at least one char.</span>
-<a name="line-90"></a><span class='comment'>-- All none matching chars are discarded. If the given regex contains syntax errors,</span>
-<a name="line-91"></a><span class='comment'>-- @Nothing@ is returned</span>
-<a name="line-92"></a><span class='comment'>--</span>
-<a name="line-93"></a><span class='comment'>-- examples:</span>
-<a name="line-94"></a><span class='comment'>--</span>
-<a name="line-95"></a><span class='comment'>-- &gt; tokenizeRE "a*b" ""         = Just []</span>
-<a name="line-96"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abc"      = Just ["ab"]</span>
-<a name="line-97"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abaab ab" = Just ["ab","aab","ab"]</span>
-<a name="line-98"></a><span class='comment'>-- &gt;</span>
-<a name="line-99"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+" "ab123 456.7abc"</span>
-<a name="line-100"></a><span class='comment'>-- &gt;                                = Just ["ab","123","456.7","abc"]</span>
-<a name="line-101"></a><span class='comment'>-- &gt;</span>
-<a name="line-102"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+" "cab123 456.7abc"</span>
-<a name="line-103"></a><span class='comment'>-- &gt;                                = Just ["cab","123","456.7","abc"]</span>
+<a name="line-85"></a><a name="split"></a><span class='definition'>split</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-86"></a><span class='definition'>split</span> <span class='varid'>re</span> <span class='varid'>input</span>
+<a name="line-87"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitRE</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>input</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- | split a string into tokens (words) by giving a regular expression</span>
+<a name="line-92"></a><span class='comment'>-- which all tokens must match</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>-- This can be used for simple tokenizers.</span>
+<a name="line-95"></a><span class='comment'>-- The words in the result list contain at least one char.</span>
+<a name="line-96"></a><span class='comment'>-- All none matching chars are discarded. If the given regex contains syntax errors,</span>
+<a name="line-97"></a><span class='comment'>-- @Nothing@ is returned</span>
+<a name="line-98"></a><span class='comment'>--</span>
+<a name="line-99"></a><span class='comment'>-- examples:</span>
+<a name="line-100"></a><span class='comment'>--</span>
+<a name="line-101"></a><span class='comment'>-- &gt; tokenizeRE "a*b" ""         = Just []</span>
+<a name="line-102"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abc"      = Just ["ab"]</span>
+<a name="line-103"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abaab ab" = Just ["ab","aab","ab"]</span>
 <a name="line-104"></a><span class='comment'>-- &gt;</span>
-<a name="line-105"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*" "abc def\t\n\rxyz"</span>
-<a name="line-106"></a><span class='comment'>-- &gt;                                = Just ["abc","def","xyz"]</span>
+<a name="line-105"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+" "ab123 456.7abc"</span>
+<a name="line-106"></a><span class='comment'>-- &gt;                                = Just ["ab","123","456.7","abc"]</span>
 <a name="line-107"></a><span class='comment'>-- &gt;</span>
-<a name="line-108"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*"    = words</span>
-<a name="line-109"></a>
-<a name="line-110"></a><a name="tokenizeRE"></a><span class='definition'>tokenizeRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-111"></a><span class='definition'>tokenizeRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>token'</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>
-<a name="line-113"></a>    <span class='keyword'>where</span>
-<a name="line-114"></a>    <span class='varid'>token'</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-115"></a>    <span class='varid'>token'</span> <span class='varid'>re</span> <span class='varid'>inp</span>
-<a name="line-116"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>inp</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-117"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>inp</span>
-<a name="line-118"></a>	<span class='keyword'>where</span>
-<a name="line-119"></a>	<span class='varid'>evalRes</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>token'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>inp</span><span class='layout'>)</span>	<span class='comment'>-- re does not match any prefix</span>
-<a name="line-120"></a>	<span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-121"></a>	    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>tok</span>	<span class='keyglyph'>=</span> <span class='varid'>token'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span>	<span class='comment'>-- re is nullable and only the empty prefix matches</span>
-<a name="line-122"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>tok</span> <span class='conop'>:</span> <span class='varid'>token'</span> <span class='varid'>re</span> <span class='varid'>rest</span>	<span class='comment'>-- token found, tokenize the rest</span>
-<a name="line-123"></a>
-<a name="line-124"></a><span class='comment'>-- | convenient function for tokenizeRE a string</span>
-<a name="line-125"></a><span class='comment'>--</span>
-<a name="line-126"></a><span class='comment'>-- syntax errors in R.E. result in an empty list</span>
-<a name="line-127"></a>
-<a name="line-128"></a><a name="tokenize"></a><span class='definition'>tokenize</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-129"></a><span class='definition'>tokenize</span> <span class='varid'>re</span>
-<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>tokenizeRE</span> <span class='varid'>re</span>
-<a name="line-131"></a>
-<a name="line-132"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-133"></a>
-<a name="line-134"></a><span class='comment'>-- | split a string into tokens and delimierter by giving a regular expression</span>
-<a name="line-135"></a><span class='comment'>-- wich all tokens must match</span>
-<a name="line-136"></a><span class='comment'>--</span>
-<a name="line-137"></a><span class='comment'>-- This is a generalisation of the above 'tokenizeRE' functions.</span>
-<a name="line-138"></a><span class='comment'>-- The none matching char sequences are marked with @Left@, the matching ones are marked with @Right@</span>
-<a name="line-139"></a><span class='comment'>--</span>
-<a name="line-140"></a><span class='comment'>-- If the regular expression contains syntax errors @Nothing@ is returned</span>
-<a name="line-141"></a><span class='comment'>--</span>
-<a name="line-142"></a><span class='comment'>-- The following Law holds:</span>
+<a name="line-108"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+" "cab123 456.7abc"</span>
+<a name="line-109"></a><span class='comment'>-- &gt;                                = Just ["cab","123","456.7","abc"]</span>
+<a name="line-110"></a><span class='comment'>-- &gt;</span>
+<a name="line-111"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*" "abc def\t\n\rxyz"</span>
+<a name="line-112"></a><span class='comment'>-- &gt;                                = Just ["abc","def","xyz"]</span>
+<a name="line-113"></a><span class='comment'>-- &gt;</span>
+<a name="line-114"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*"    = words</span>
+<a name="line-115"></a>
+<a name="line-116"></a><a name="tokenizeRE"></a><span class='definition'>tokenizeRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-117"></a><span class='definition'>tokenizeRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>
+<a name="line-118"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>token'</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>
+<a name="line-119"></a>    <span class='keyword'>where</span>
+<a name="line-120"></a>    <span class='varid'>token'</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-121"></a>    <span class='varid'>token'</span> <span class='varid'>re</span> <span class='varid'>inp</span>
+<a name="line-122"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>inp</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-123"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>inp</span>
+<a name="line-124"></a>	<span class='keyword'>where</span>
+<a name="line-125"></a>	<span class='varid'>token''</span>         <span class='keyglyph'>=</span> <span class='varid'>token'</span> <span class='varid'>re</span>
+<a name="line-126"></a>	<span class='varid'>evalRes</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>token''</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>inp</span><span class='layout'>)</span>		<span class='comment'>-- re does not match any prefix</span>
+<a name="line-127"></a>	<span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-128"></a>	    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>tok</span>	<span class='keyglyph'>=</span> <span class='varid'>token''</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span>		<span class='comment'>-- re is nullable and only the empty prefix matches</span>
+<a name="line-129"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>tok</span> <span class='conop'>:</span> <span class='varid'>token''</span> <span class='varid'>rest</span>		<span class='comment'>-- token found, tokenize the rest</span>
+<a name="line-130"></a>
+<a name="line-131"></a><span class='comment'>-- | convenient function for tokenizeRE a string</span>
+<a name="line-132"></a><span class='comment'>--</span>
+<a name="line-133"></a><span class='comment'>-- syntax errors in R.E. result in an empty list</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="tokenize"></a><span class='definition'>tokenize</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-136"></a><span class='definition'>tokenize</span> <span class='varid'>re</span>
+<a name="line-137"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>tokenizeRE</span> <span class='varid'>re</span>
+<a name="line-138"></a>
+<a name="line-139"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-140"></a>
+<a name="line-141"></a><span class='comment'>-- | split a string into tokens and delimierter by giving a regular expression</span>
+<a name="line-142"></a><span class='comment'>-- wich all tokens must match</span>
 <a name="line-143"></a><span class='comment'>--</span>
-<a name="line-144"></a><span class='comment'>-- &gt; concat . map (either id id) . fromJust . tokenizeRE' re == id</span>
-<a name="line-145"></a>
-<a name="line-146"></a><a name="tokenizeRE'"></a><span class='definition'>tokenizeRE'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-147"></a><span class='definition'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>token'</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>
-<a name="line-149"></a>    <span class='keyword'>where</span>
-<a name="line-150"></a>    <span class='varid'>token'</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-151"></a>    <span class='varid'>token'</span> <span class='varid'>re</span>
-<a name="line-152"></a>	<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='str'>""</span>
-<a name="line-153"></a>	<span class='keyword'>where</span>
-<a name="line-154"></a>	<span class='varid'>tok2</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-155"></a>	<span class='varid'>tok2</span> <span class='varid'>noMatchPrefix</span> <span class='varid'>inp</span>
-<a name="line-156"></a>	    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>inp</span>	<span class='keyglyph'>=</span> <span class='varid'>addNoMatch</span> <span class='conid'>[]</span>
-<a name="line-157"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>inp</span>
-<a name="line-158"></a>	    <span class='keyword'>where</span>
-<a name="line-159"></a>	    <span class='varid'>addNoMatch</span> <span class='varid'>res</span>
-<a name="line-160"></a>		<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>noMatchPrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>res</span>
-<a name="line-161"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>res</span>
-<a name="line-162"></a>
-<a name="line-163"></a>	    <span class='varid'>evalRes</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>inp</span> <span class='conop'>:</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>inp</span><span class='layout'>)</span>		<span class='comment'>-- re does not match any prefix</span>
-<a name="line-164"></a>	    <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-165"></a>		<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>tok</span>		<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>rest</span> <span class='conop'>:</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span>		<span class='comment'>-- re is nullable and only the empty prefix matches</span>
-<a name="line-166"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>addNoMatch</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>tok</span> <span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>tok2</span> <span class='str'>""</span> <span class='varop'>$</span> <span class='varid'>rest</span>		<span class='comment'>-- token found, tokenize the rest</span>
-<a name="line-167"></a>
-<a name="line-168"></a><span class='comment'>-- | convenient function for tokenizeRE'</span>
-<a name="line-169"></a><span class='comment'>--</span>
-<a name="line-170"></a><span class='comment'>-- When the regular expression contains errors @[Left input]@ is returned, that means tokens are found</span>
-<a name="line-171"></a>
-<a name="line-172"></a><a name="tokenize'"></a><span class='definition'>tokenize'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-173"></a><span class='definition'>tokenize'</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-174"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='keyglyph'>[</span><span class='conid'>Left</span> <span class='varid'>input</span><span class='keyglyph'>]</span> <span class='varop'>.</span> <span class='varid'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varop'>$</span> <span class='varid'>input</span>
-<a name="line-175"></a>
-<a name="line-176"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-177"></a>
-<a name="line-178"></a><span class='comment'>-- | sed like editing function</span>
-<a name="line-179"></a><span class='comment'>--</span>
-<a name="line-180"></a><span class='comment'>-- All matching tokens are edited by the 1. argument, the editing function,</span>
-<a name="line-181"></a><span class='comment'>-- all other chars remain as they are</span>
-<a name="line-182"></a><span class='comment'>--</span>
-<a name="line-183"></a><span class='comment'>-- examples:</span>
-<a name="line-184"></a><span class='comment'>--</span>
-<a name="line-185"></a><span class='comment'>-- &gt; sedRE (const "b") "a" "xaxax"       = Just "xbxbx"</span>
-<a name="line-186"></a><span class='comment'>-- &gt; sedRE (\ x -&gt; x ++ x) "a" "xax"     = Just "xaax"</span>
-<a name="line-187"></a><span class='comment'>-- &gt; sedRE undefined       "[" undefined = Nothing</span>
-<a name="line-188"></a>
-<a name="line-189"></a><a name="sedRE"></a><span class='definition'>sedRE</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
-<a name="line-190"></a><span class='definition'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-191"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>id</span> <span class='varid'>edit</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-192"></a>
-<a name="line-193"></a><span class='comment'>-- | convenient function for sedRE</span>
-<a name="line-194"></a><span class='comment'>--</span>
-<a name="line-195"></a><span class='comment'>-- When the regular expression contains errors, sed is the identity, else</span>
-<a name="line-196"></a><span class='comment'>-- the funtionality is like 'sedRE'</span>
-<a name="line-197"></a><span class='comment'>--</span>
-<a name="line-198"></a><span class='comment'>-- &gt; sed undefined "["  == id</span>
+<a name="line-144"></a><span class='comment'>-- This is a generalisation of the above 'tokenizeRE' functions.</span>
+<a name="line-145"></a><span class='comment'>-- The none matching char sequences are marked with @Left@, the matching ones are marked with @Right@</span>
+<a name="line-146"></a><span class='comment'>--</span>
+<a name="line-147"></a><span class='comment'>-- If the regular expression contains syntax errors @Nothing@ is returned</span>
+<a name="line-148"></a><span class='comment'>--</span>
+<a name="line-149"></a><span class='comment'>-- The following Law holds:</span>
+<a name="line-150"></a><span class='comment'>--</span>
+<a name="line-151"></a><span class='comment'>-- &gt; concat . map (either id id) . fromJust . tokenizeRE' re == id</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="tokenizeRE'"></a><span class='definition'>tokenizeRE'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-154"></a><span class='definition'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>
+<a name="line-155"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>token'</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>
+<a name="line-156"></a>    <span class='keyword'>where</span>
+<a name="line-157"></a>    <span class='varid'>token'</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-158"></a>    <span class='varid'>token'</span> <span class='varid'>re</span>
+<a name="line-159"></a>	<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='str'>""</span>
+<a name="line-160"></a>	<span class='keyword'>where</span>
+<a name="line-161"></a>	<span class='varid'>tok2</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-162"></a>	<span class='varid'>tok2</span> <span class='varid'>noMatchPrefix</span> <span class='varid'>inp</span>
+<a name="line-163"></a>	    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>inp</span>	<span class='keyglyph'>=</span> <span class='varid'>addNoMatch</span> <span class='conid'>[]</span>
+<a name="line-164"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>inp</span>
+<a name="line-165"></a>	    <span class='keyword'>where</span>
+<a name="line-166"></a>	    <span class='varid'>addNoMatch</span> <span class='varid'>res</span>
+<a name="line-167"></a>		<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>noMatchPrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>res</span>
+<a name="line-168"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>res</span>
+<a name="line-169"></a>
+<a name="line-170"></a>	    <span class='varid'>evalRes</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>inp</span> <span class='conop'>:</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>inp</span><span class='layout'>)</span>		<span class='comment'>-- re does not match any prefix</span>
+<a name="line-171"></a>	    <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-172"></a>		<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>tok</span>		<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>rest</span> <span class='conop'>:</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span>		<span class='comment'>-- re is nullable and only the empty prefix matches</span>
+<a name="line-173"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>addNoMatch</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>tok</span> <span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>tok2</span> <span class='str'>""</span> <span class='varop'>$</span> <span class='varid'>rest</span>		<span class='comment'>-- token found, tokenize the rest</span>
+<a name="line-174"></a>
+<a name="line-175"></a><span class='comment'>-- | convenient function for tokenizeRE'</span>
+<a name="line-176"></a><span class='comment'>--</span>
+<a name="line-177"></a><span class='comment'>-- When the regular expression contains errors @[Left input]@ is returned, that means tokens are found</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="tokenize'"></a><span class='definition'>tokenize'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-180"></a><span class='definition'>tokenize'</span> <span class='varid'>regex</span> <span class='varid'>input</span>
+<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='keyglyph'>[</span><span class='conid'>Left</span> <span class='varid'>input</span><span class='keyglyph'>]</span> <span class='varop'>.</span> <span class='varid'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varop'>$</span> <span class='varid'>input</span>
+<a name="line-182"></a>
+<a name="line-183"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='comment'>-- | sed like editing function</span>
+<a name="line-186"></a><span class='comment'>--</span>
+<a name="line-187"></a><span class='comment'>-- All matching tokens are edited by the 1. argument, the editing function,</span>
+<a name="line-188"></a><span class='comment'>-- all other chars remain as they are</span>
+<a name="line-189"></a><span class='comment'>--</span>
+<a name="line-190"></a><span class='comment'>-- examples:</span>
+<a name="line-191"></a><span class='comment'>--</span>
+<a name="line-192"></a><span class='comment'>-- &gt; sedRE (const "b") "a" "xaxax"       = Just "xbxbx"</span>
+<a name="line-193"></a><span class='comment'>-- &gt; sedRE (\ x -&gt; x ++ x) "a" "xax"     = Just "xaax"</span>
+<a name="line-194"></a><span class='comment'>-- &gt; sedRE undefined       "[" undefined = Nothing</span>
+<a name="line-195"></a>
+<a name="line-196"></a><a name="sedRE"></a><span class='definition'>sedRE</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-197"></a><span class='definition'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>
+<a name="line-198"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>id</span> <span class='varid'>edit</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>
 <a name="line-199"></a>
-<a name="line-200"></a><a name="sed"></a><span class='definition'>sed</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-201"></a><span class='definition'>sed</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-202"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>input</span> <span class='varop'>.</span> <span class='varid'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varop'>$</span> <span class='varid'>input</span>
-<a name="line-203"></a>
-<a name="line-204"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-205"></a>
-<a name="line-206"></a><span class='comment'>-- | match a string with a regular expression</span>
-<a name="line-207"></a><span class='comment'>--</span>
-<a name="line-208"></a><span class='comment'>-- First argument is the regex, second the input string,</span>
-<a name="line-209"></a><span class='comment'>-- if the regex is not well formed, @Nothing@ is returned,</span>
-<a name="line-210"></a><span class='comment'>-- else @Just@ the match result</span>
-<a name="line-211"></a><span class='comment'>--</span>
-<a name="line-212"></a><span class='comment'>-- Examples:</span>
-<a name="line-213"></a><span class='comment'>--</span>
-<a name="line-214"></a><span class='comment'>-- &gt; matchRE "x*" "xxx" = Just True</span>
-<a name="line-215"></a><span class='comment'>-- &gt; matchRE "x" "xxx"  = Just False</span>
-<a name="line-216"></a><span class='comment'>-- &gt; matchRE "[" "xxx"  = Nothing</span>
-<a name="line-217"></a>
-<a name="line-218"></a><a name="matchRE"></a><span class='definition'>matchRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Bool</span>
-<a name="line-219"></a><span class='definition'>matchRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>
-<a name="line-220"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>matchWithRE</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>
-<a name="line-221"></a>
-<a name="line-222"></a>
-<a name="line-223"></a><span class='comment'>-- | convenient function for matchRE</span>
-<a name="line-224"></a><span class='comment'>--</span>
-<a name="line-225"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no match found</span>
-<a name="line-226"></a>
-<a name="line-227"></a><a name="match"></a><span class='definition'>match</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-228"></a><span class='definition'>match</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>False</span> <span class='varop'>.</span> <span class='varid'>matchRE</span> <span class='varid'>re</span>
+<a name="line-200"></a><span class='comment'>-- | convenient function for sedRE</span>
+<a name="line-201"></a><span class='comment'>--</span>
+<a name="line-202"></a><span class='comment'>-- When the regular expression contains errors, sed is the identity, else</span>
+<a name="line-203"></a><span class='comment'>-- the funtionality is like 'sedRE'</span>
+<a name="line-204"></a><span class='comment'>--</span>
+<a name="line-205"></a><span class='comment'>-- &gt; sed undefined "["  == id</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="sed"></a><span class='definition'>sed</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-208"></a><span class='definition'>sed</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>
+<a name="line-209"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>input</span> <span class='varop'>.</span> <span class='varid'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varop'>$</span> <span class='varid'>input</span>
+<a name="line-210"></a>
+<a name="line-211"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-212"></a>
+<a name="line-213"></a><span class='comment'>-- | match a string with a regular expression</span>
+<a name="line-214"></a><span class='comment'>--</span>
+<a name="line-215"></a><span class='comment'>-- First argument is the regex, second the input string,</span>
+<a name="line-216"></a><span class='comment'>-- if the regex is not well formed, @Nothing@ is returned,</span>
+<a name="line-217"></a><span class='comment'>-- else @Just@ the match result</span>
+<a name="line-218"></a><span class='comment'>--</span>
+<a name="line-219"></a><span class='comment'>-- Examples:</span>
+<a name="line-220"></a><span class='comment'>--</span>
+<a name="line-221"></a><span class='comment'>-- &gt; matchRE "x*" "xxx" = Just True</span>
+<a name="line-222"></a><span class='comment'>-- &gt; matchRE "x" "xxx"  = Just False</span>
+<a name="line-223"></a><span class='comment'>-- &gt; matchRE "[" "xxx"  = Nothing</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="matchRE"></a><span class='definition'>matchRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Bool</span>
+<a name="line-226"></a><span class='definition'>matchRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>
+<a name="line-227"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>matchWithRE</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>
+<a name="line-228"></a>
 <a name="line-229"></a>
-<a name="line-230"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-231"></a>
-<a name="line-232"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-230"></a><span class='comment'>-- | convenient function for matchRE</span>
+<a name="line-231"></a><span class='comment'>--</span>
+<a name="line-232"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no match found</span>
+<a name="line-233"></a>
+<a name="line-234"></a><a name="match"></a><span class='definition'>match</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-235"></a><span class='definition'>match</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>False</span> <span class='varop'>.</span> <span class='varid'>matchRE</span> <span class='varid'>re</span>
+<a name="line-236"></a>
+<a name="line-237"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-238"></a>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
--- a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
@@ -30,8 +30,8 @@
 <a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>parseRegex</span> <span class='layout'>)</span>
 <a name="line-23"></a><span class='keyword'>where</span>
 <a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Applicative</span> <span class='layout'>(</span> <span class='varid'>liftA2</span> <span class='layout'>)</span>
-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-26"></a>
 <a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
 <a name="line-28"></a>
 <a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
@@ -184,9 +184,9 @@
 <a name="line-176"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'w'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNotWord</span>		<span class='layout'>)</span>
 <a name="line-177"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'W'</span><span class='layout'>,</span>       <span class='varid'>isNotWord</span>		<span class='layout'>)</span>
 <a name="line-178"></a>	 <span class='keyglyph'>]</span>
-<a name="line-179"></a>    <span class='varid'>isDigit</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'0'</span> <span class='varop'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span> <span class='chr'>'9'</span><span class='layout'>)</span>
-<a name="line-180"></a>    <span class='varid'>isNotWord</span> <span class='keyglyph'>=</span> <span class='varid'>isUnicodeP</span> <span class='varop'>|||</span>
-<a name="line-181"></a>		<span class='varid'>isUnicodeZ</span> <span class='varop'>|||</span>
+<a name="line-179"></a>    <span class='varid'>isDigit</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'0'</span> <span class='varop'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span> <span class='chr'>'9'</span><span class='layout'>)</span>
+<a name="line-180"></a>    <span class='varid'>isNotWord</span> <span class='keyglyph'>=</span> <span class='varid'>isUnicodeP</span> <span class='varop'>&lt;||&gt;</span>
+<a name="line-181"></a>		<span class='varid'>isUnicodeZ</span> <span class='varop'>&lt;||&gt;</span>
 <a name="line-182"></a>		<span class='varid'>isUnicodeC</span>
 <a name="line-183"></a>
 <a name="line-184"></a><a name="catEsc"></a><span class='definition'>catEsc</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
@@ -212,7 +212,7 @@
 <a name="line-204"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>let</span>
 <a name="line-205"></a>		       <span class='layout'>(</span><span class='varid'>lb</span><span class='layout'>,</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varid'>b</span>
 <a name="line-206"></a>		       <span class='keyword'>in</span>
-<a name="line-207"></a>		       <span class='layout'>(</span><span class='varid'>lb</span> <span class='varop'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span> <span class='varid'>ub</span><span class='layout'>)</span>
+<a name="line-207"></a>		       <span class='layout'>(</span><span class='varid'>lb</span> <span class='varop'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span> <span class='varid'>ub</span><span class='layout'>)</span>
 <a name="line-208"></a>	 <span class='keyword'>else</span> <span class='varid'>fail</span>   <span class='varop'>$</span> <span class='str'>"unknown Unicode code block "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>
 <a name="line-209"></a>    <span class='keyword'>where</span>
 <a name="line-210"></a>    <span class='varid'>legalChar</span> <span class='varid'>c</span>	 <span class='keyglyph'>=</span> <span class='chr'>'A'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'Z'</span> <span class='varop'>||</span>
@@ -360,13 +360,5 @@
 <a name="line-352"></a>
 <a name="line-353"></a>
 <a name="line-354"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-355"></a>
-<a name="line-356"></a><a name="&&&"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
-<a name="line-357"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>liftA2</span> <span class='layout'>(</span><span class='varop'>&amp;&amp;</span><span class='layout'>)</span>
-<a name="line-358"></a>
-<a name="line-359"></a><a name="|||"></a><span class='layout'>(</span><span class='varop'>|||</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
-<a name="line-360"></a><span class='layout'>(</span><span class='varop'>|||</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>liftA2</span> <span class='layout'>(</span><span class='varop'>||</span><span class='layout'>)</span>
-<a name="line-361"></a>
-<a name="line-362"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Version.html b/doc/hdoc/src/Text-XML-HXT-Version.html
--- a/doc/hdoc/src/Text-XML-HXT-Version.html
+++ b/doc/hdoc/src/Text-XML-HXT-Version.html
@@ -9,6 +9,6 @@
 <pre><a name="line-1"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Version</span>
 <a name="line-2"></a><span class='keyword'>where</span>
 <a name="line-3"></a><a name="hxt_version"></a><span class='definition'>hxt_version</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
-<a name="line-4"></a><span class='definition'>hxt_version</span> <span class='keyglyph'>=</span> <span class='str'>"8.2.0"</span>
+<a name="line-4"></a><span class='definition'>hxt_version</span> <span class='keyglyph'>=</span> <span class='str'>"8.3.0"</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html
--- a/doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html
@@ -103,10 +103,10 @@
 <a name="line-95"></a><span class='comment'>-- Works like 'getXPath' but the prefix:localpart names in the XPath expression</span>
 <a name="line-96"></a><span class='comment'>-- are interpreted with respect to the given namespace environment</span>
 <a name="line-97"></a>
-<a name="line-98"></a><a name="getXPathWithNsEnv"></a><span class='definition'>getXPathWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-98"></a><a name="getXPathWithNsEnv"></a><span class='definition'>getXPathWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
 <a name="line-99"></a><span class='definition'>getXPathWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span>
 <a name="line-100"></a>				  <span class='varop'>&gt;&gt;&gt;</span>
-<a name="line-101"></a>				  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>getXPathValues</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varid'>xPathErr</span> <span class='varid'>env</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-101"></a>				  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>getXPathValues</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varid'>xPathErr</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>
 <a name="line-102"></a>				<span class='layout'>)</span>
 <a name="line-103"></a>
 <a name="line-104"></a><span class='comment'>-- |</span>
@@ -127,9 +127,9 @@
 <a name="line-119"></a>
 <a name="line-120"></a><span class='comment'>-- | Same as 'getXPathSubTrees' but with namespace aware XPath expression</span>
 <a name="line-121"></a>
-<a name="line-122"></a><a name="getXPathSubTreesWithNsEnv"></a><span class='definition'>getXPathSubTreesWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-122"></a><a name="getXPathSubTreesWithNsEnv"></a><span class='definition'>getXPathSubTreesWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
 <a name="line-123"></a><span class='definition'>getXPathSubTreesWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span>
-<a name="line-124"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXPathValues</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varid'>xPathErr</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span>
+<a name="line-124"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXPathValues</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varid'>xPathErr</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>nsEnv</span><span class='layout'>)</span> <span class='varid'>xpStr</span>
 <a name="line-125"></a>
 <a name="line-126"></a><span class='comment'>-- | compute the node set of an XPath query</span>
 <a name="line-127"></a>
@@ -138,9 +138,9 @@
 <a name="line-130"></a>
 <a name="line-131"></a><span class='comment'>-- | compute the node set of a namespace aware XPath query</span>
 <a name="line-132"></a>
-<a name="line-133"></a><a name="getXPathNodeSetWithNsEnv"></a><span class='definition'>getXPathNodeSetWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-133"></a><a name="getXPathNodeSetWithNsEnv"></a><span class='definition'>getXPathNodeSetWithNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
 <a name="line-134"></a><span class='definition'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span>
-<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXPathValues</span> <span class='varid'>xPValue2NodeSet</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>emptyNodeSet</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXPathValues</span> <span class='varid'>xPValue2NodeSet</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>emptyNodeSet</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>nsEnv</span><span class='layout'>)</span> <span class='varid'>xpStr</span>
 <a name="line-136"></a>
 <a name="line-137"></a><span class='comment'>-- | parse xpath, evaluate xpath expr and prepare results</span>
 <a name="line-138"></a>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html
--- a/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html
@@ -10,653 +10,653 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.XPath.XPathParser
-<a name="line-5"></a>   Copyright  : Copyright (C) 2006 Uwe Schmidt
-<a name="line-6"></a>   License    : MIT
-<a name="line-7"></a>
-<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-<a name="line-9"></a>   Stability  : experimental
-<a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: XPathParser.hs,v 1.6 2006/10/12 11:51:29 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>   the XPath Parser
-<a name="line-14"></a>
-<a name="line-15"></a>-}</span>
-<a name="line-16"></a>
-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
-<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>parseNumber</span>
-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>parseXPath</span>
-<a name="line-22"></a>    <span class='layout'>)</span>
-<a name="line-23"></a><span class='keyword'>where</span>
-<a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-26"></a>
-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
-<a name="line-28"></a>
-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-30"></a>
-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathKeywords</span>
-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
-<a name="line-33"></a>
-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>
-<a name="line-35"></a>    <span class='layout'>(</span> <span class='varid'>separator</span>
-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>systemLiteral</span>
-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>skipS0</span>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>ncName</span>
-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>qName</span>
-<a name="line-40"></a>    <span class='layout'>)</span>
-<a name="line-41"></a>
-<a name="line-42"></a><a name="lookupNs"></a><span class='definition'>lookupNs</span>		<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-43"></a><span class='definition'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>
-<a name="line-44"></a>    <span class='comment'>-- downwards compatibility: if namespace env is not supported</span>
-<a name="line-45"></a>    <span class='comment'>-- no error is raised, but the uri remains empty</span>
-<a name="line-46"></a>    <span class='comment'>-- not conformant to XPath spec: If namespaces are used, an complete env must be supported,</span>
-<a name="line-47"></a>    <span class='comment'>-- but we don't care about this</span>
-<a name="line-48"></a>
-<a name="line-49"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>
-<a name="line-50"></a>
-<a name="line-51"></a><a name="enhanceAttrQName"></a><span class='definition'>enhanceAttrQName</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-52"></a><span class='definition'>enhanceAttrQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>
-<a name="line-53"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>qn</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>qn</span>
-<a name="line-54"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>
-<a name="line-55"></a>
-<a name="line-56"></a><a name="enhanceQName"></a><span class='definition'>enhanceQName</span> 		<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-57"></a><span class='definition'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>
-<a name="line-58"></a>    <span class='keyglyph'>=</span> <span class='varid'>qn</span> <span class='layout'>{</span><span class='varid'>namespaceUri</span> <span class='keyglyph'>=</span> <span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>qn</span><span class='layout'>)</span><span class='layout'>}</span>
-<a name="line-59"></a>
-<a name="line-60"></a><a name="enhanceQN"></a><span class='definition'>enhanceQN</span>		<span class='keyglyph'>::</span>  <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
-<a name="line-61"></a><span class='definition'>enhanceQN</span> <span class='conid'>Attribute</span>	<span class='keyglyph'>=</span> <span class='varid'>enhanceAttrQName</span>
-<a name="line-62"></a><span class='definition'>enhanceQN</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span>
-<a name="line-63"></a>
-<a name="line-64"></a><a name="XParser"></a><span class='keyword'>type</span> <span class='conid'>XParser</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='conid'>NsEnv</span> <span class='varid'>a</span>
-<a name="line-65"></a>
-<a name="line-66"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-67"></a><span class='comment'>-- parse functions which are used in the XPathFct module</span>
-<a name="line-68"></a>
-<a name="line-69"></a><a name="parseNumber"></a><span class='comment'>-- |</span>
-<a name="line-70"></a><span class='comment'>-- parsing a number, parseNumber is used in "XPathFct"</span>
-<a name="line-71"></a><span class='comment'>-- by the number function</span>
-<a name="line-72"></a><span class='comment'>--</span>
-<a name="line-73"></a><span class='comment'>--    - returns : the parsed number as 'XPNumber' float</span>
-<a name="line-74"></a><span class='comment'>--                or 'XPVNumber' 'NaN' in case of error</span>
-<a name="line-75"></a><span class='definition'>parseNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
-<a name="line-76"></a><span class='definition'>parseNumber</span> <span class='varid'>s</span>
-<a name="line-77"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>runParser</span> <span class='varid'>parseNumber'</span> <span class='conid'>[]</span> <span class='comment'>{- Map.empty -}</span> <span class='str'>""</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>of</span>
-<a name="line-78"></a>        <span class='conid'>Left</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
-<a name="line-79"></a>        <span class='conid'>Right</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>x</span> <span class='keyglyph'>::</span> <span class='conid'>Float</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='num'>0</span>
-<a name="line-80"></a>                      <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>
-<a name="line-81"></a>                      <span class='keyword'>else</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-82"></a>
-<a name="line-83"></a><a name="parseNumber'"></a><span class='definition'>parseNumber'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
-<a name="line-84"></a><span class='definition'>parseNumber'</span>
-<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-86"></a>      <span class='varid'>skipS0</span>
-<a name="line-87"></a>      <span class='varid'>m</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"-"</span><span class='layout'>)</span>
-<a name="line-88"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>number</span>
-<a name="line-89"></a>      <span class='varid'>skipS0</span>
-<a name="line-90"></a>      <span class='varid'>eof</span>
-<a name="line-91"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-92"></a>
-<a name="line-93"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-94"></a>
-<a name="line-95"></a>
-<a name="line-96"></a><span class='comment'>-- |</span>
-<a name="line-97"></a><span class='comment'>-- the main entry point:</span>
-<a name="line-98"></a><span class='comment'>-- parsing a XPath expression</span>
-<a name="line-99"></a>
-<a name="line-100"></a><a name="parseXPath"></a><span class='definition'>parseXPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-101"></a><span class='definition'>parseXPath</span>
-<a name="line-102"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-103"></a>      <span class='varid'>skipS0</span>
-<a name="line-104"></a>      <span class='varid'>xPathExpr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>expr</span>
-<a name="line-105"></a>      <span class='varid'>skipS0</span>
-<a name="line-106"></a>      <span class='varid'>eof</span>
-<a name="line-107"></a>      <span class='varid'>return</span> <span class='varid'>xPathExpr</span>
-<a name="line-108"></a>
-<a name="line-109"></a>
-<a name="line-110"></a><a name="lpar"></a><span class='comment'>-- some useful token and symbol parser</span>
-<a name="line-111"></a><span class='definition'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span><span class='layout'>,</span> <span class='varid'>lbra</span><span class='layout'>,</span> <span class='varid'>rbra</span><span class='layout'>,</span> <span class='varid'>slash</span><span class='layout'>,</span> <span class='varid'>dslash</span>	<span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>()</span>
-<a name="line-112"></a>
-<a name="line-113"></a><span class='definition'>lpar</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"("</span><span class='layout'>)</span>
-<a name="line-114"></a><a name="rpar"></a><span class='definition'>rpar</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>")"</span><span class='layout'>)</span>
-<a name="line-115"></a><a name="lbra"></a><span class='definition'>lbra</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"["</span><span class='layout'>)</span>
-<a name="line-116"></a><a name="rbra"></a><span class='definition'>rbra</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"]"</span><span class='layout'>)</span>
-<a name="line-117"></a><a name="slash"></a><span class='definition'>slash</span>  <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"/"</span><span class='layout'>)</span>
-<a name="line-118"></a><a name="dslash"></a><span class='definition'>dslash</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"//"</span><span class='layout'>)</span>
-<a name="line-119"></a>
-<a name="line-120"></a>
-<a name="line-121"></a><a name="tokenParser"></a><span class='definition'>tokenParser</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>()</span>
-<a name="line-122"></a><span class='definition'>tokenParser</span> <span class='varid'>p</span>
-<a name="line-123"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-124"></a>            <span class='varid'>skipS0</span>
-<a name="line-125"></a>            <span class='varid'>p</span>
-<a name="line-126"></a>            <span class='varid'>skipS0</span>
-<a name="line-127"></a>           <span class='layout'>)</span>
-<a name="line-128"></a>
-<a name="line-129"></a>
-<a name="line-130"></a><a name="symbolParser"></a><span class='definition'>symbolParser</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='varid'>a</span>
-<a name="line-131"></a><span class='definition'>symbolParser</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span><span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-132"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-133"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-134"></a>      <span class='varid'>return</span> <span class='varid'>a</span>
-<a name="line-135"></a>
-<a name="line-136"></a>
-<a name="line-137"></a><a name="symbol"></a><span class='definition'>symbol</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
-<a name="line-138"></a><span class='definition'>symbol</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-139"></a>
-<a name="line-140"></a>
-<a name="line-141"></a>
-<a name="line-142"></a><a name="orOp"></a><span class='comment'>--  operation parser</span>
-<a name="line-143"></a><span class='definition'>orOp</span><span class='layout'>,</span> <span class='varid'>andOp</span><span class='layout'>,</span> <span class='varid'>eqOp</span><span class='layout'>,</span> <span class='varid'>relOp</span><span class='layout'>,</span> <span class='varid'>addOp</span><span class='layout'>,</span> <span class='varid'>multiOp</span><span class='layout'>,</span> <span class='varid'>unionOp</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Op</span>
-<a name="line-144"></a>
-<a name="line-145"></a><span class='definition'>orOp</span>  <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"or"</span><span class='layout'>,</span> <span class='conid'>Or</span><span class='layout'>)</span>
-<a name="line-146"></a><a name="andOp"></a><span class='definition'>andOp</span> <span class='keyglyph'>=</span>	<span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"and"</span><span class='layout'>,</span> <span class='conid'>And</span><span class='layout'>)</span>
-<a name="line-147"></a>
-<a name="line-148"></a><a name="eqOp"></a><span class='definition'>eqOp</span>
-<a name="line-149"></a>    <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"="</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>
-<a name="line-150"></a>      <span class='varop'>&lt;|&gt;</span> 
-<a name="line-151"></a>      <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"!="</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='layout'>)</span>
-<a name="line-152"></a>
-<a name="line-153"></a><a name="relOp"></a><span class='definition'>relOp</span>
-<a name="line-154"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&lt;="</span><span class='layout'>,</span> <span class='conid'>LessEq</span><span class='layout'>)</span>
-<a name="line-155"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&gt;="</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='layout'>)</span>
-<a name="line-156"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&lt;"</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>)</span>
-<a name="line-157"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&gt;"</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>)</span>
-<a name="line-158"></a>             <span class='keyglyph'>]</span>
-<a name="line-159"></a>
-<a name="line-160"></a><a name="addOp"></a><span class='definition'>addOp</span>
-<a name="line-161"></a>    <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"+"</span><span class='layout'>,</span> <span class='conid'>Plus</span><span class='layout'>)</span>
-<a name="line-162"></a>      <span class='varop'>&lt;|&gt;</span> 
-<a name="line-163"></a>      <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"-"</span><span class='layout'>,</span> <span class='conid'>Minus</span><span class='layout'>)</span>
-<a name="line-164"></a>
-<a name="line-165"></a>
-<a name="line-166"></a><a name="multiOp"></a><span class='definition'>multiOp</span>
-<a name="line-167"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"*"</span><span class='layout'>,</span> <span class='conid'>Mult</span><span class='layout'>)</span>
-<a name="line-168"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"mod"</span><span class='layout'>,</span> <span class='conid'>Mod</span><span class='layout'>)</span>
-<a name="line-169"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"div"</span><span class='layout'>,</span> <span class='conid'>Div</span><span class='layout'>)</span>
-<a name="line-170"></a>             <span class='keyglyph'>]</span>
-<a name="line-171"></a>
-<a name="line-172"></a>
-<a name="line-173"></a><a name="unionOp"></a><span class='definition'>unionOp</span>	<span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"|"</span><span class='layout'>,</span> <span class='conid'>Union</span><span class='layout'>)</span>
-<a name="line-174"></a>
-<a name="line-175"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-176"></a>
-<a name="line-177"></a><a name="mkExprNode"></a><span class='definition'>mkExprNode</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Op</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-178"></a><span class='definition'>mkExprNode</span> <span class='varid'>e1</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>
-<a name="line-179"></a><span class='definition'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>l</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>op</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> 
-<a name="line-180"></a>    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rest</span>
-<a name="line-181"></a>      <span class='keyword'>then</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>snd</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-182"></a>      <span class='keyword'>else</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>init</span> <span class='varid'>same</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>mkExprNode</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>last</span> <span class='varid'>same</span><span class='layout'>)</span> <span class='varid'>rest</span><span class='keyglyph'>]</span>
-<a name="line-183"></a>  <span class='keyword'>where</span> 
-<a name="line-184"></a>    <span class='layout'>(</span><span class='varid'>same</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='varid'>op</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>l</span>
-<a name="line-185"></a>    
-<a name="line-186"></a><span class='comment'>-- Tim Walkenhorst, original expr. below:</span>
-<a name="line-187"></a><span class='comment'>-- It seems mkExprNode is called only with operators of the same precedence, that should make it fixable</span>
-<a name="line-188"></a><span class='comment'>-- FIXED, see above!</span>
-<a name="line-189"></a><span class='comment'>--mkExprNode e1 l@((op, _): _) = GenExpr op (e1:(map snd l))  -- Less than ideal: 1+1-1 = 3 ???</span>
-<a name="line-190"></a>
-<a name="line-191"></a>
-<a name="line-192"></a><span class='comment'>--GenExpr op (e1:(map snd l))</span>
-<a name="line-193"></a>
-<a name="line-194"></a>
-<a name="line-195"></a><a name="exprRest"></a><span class='definition'>exprRest</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='layout'>(</span><span class='conid'>Op</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span>
-<a name="line-196"></a><span class='definition'>exprRest</span> <span class='varid'>parserOp</span> <span class='varid'>parserExpr</span>
-<a name="line-197"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-198"></a>      <span class='varid'>op</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parserOp</span>
-<a name="line-199"></a>      <span class='varid'>e2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parserExpr</span>
-<a name="line-200"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>op</span><span class='layout'>,</span> <span class='varid'>e2</span><span class='layout'>)</span>
-<a name="line-201"></a>
-<a name="line-202"></a>
-<a name="line-203"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-204"></a>
-<a name="line-205"></a><a name="descOrSelfStep"></a><span class='comment'>-- abbreviation of "//"</span>
-<a name="line-206"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>::</span> <span class='conid'>XStep</span> 
-<a name="line-207"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>DescendantOrSelf</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-208"></a>
-<a name="line-209"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-210"></a><span class='comment'>-- Location Paths (2)</span>
-<a name="line-211"></a>
-<a name="line-212"></a>
-<a name="line-213"></a><a name="locPath"></a><span class='comment'>-- [1] LocationPath </span>
-<a name="line-214"></a><span class='definition'>locPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>
-<a name="line-215"></a><span class='definition'>locPath</span>
-<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>absLocPath</span>
-<a name="line-217"></a>      <span class='varop'>&lt;|&gt;</span> 
-<a name="line-218"></a>      <span class='varid'>relLocPath'</span>
-<a name="line-219"></a>
-<a name="line-220"></a>
-<a name="line-221"></a><a name="absLocPath"></a><span class='comment'>-- [2] AbsoluteLocationPath</span>
-<a name="line-222"></a><span class='definition'>absLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>
-<a name="line-223"></a><span class='definition'>absLocPath</span>
-<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [10]</span>
-<a name="line-225"></a>      <span class='varid'>dslash</span>
-<a name="line-226"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath</span>
-<a name="line-227"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-228"></a>      <span class='varop'>&lt;|&gt;</span> 
-<a name="line-229"></a>      <span class='keyword'>do</span>
-<a name="line-230"></a>      <span class='varid'>slash</span>
-<a name="line-231"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>relLocPath</span>
-<a name="line-232"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>s</span><span class='layout'>)</span>
-<a name="line-233"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"absLocPath"</span>
-<a name="line-234"></a>
-<a name="line-235"></a>
-<a name="line-236"></a><a name="relLocPath'"></a><span class='comment'>-- [3] RelativeLocationPath</span>
-<a name="line-237"></a><span class='definition'>relLocPath'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>
-<a name="line-238"></a><span class='definition'>relLocPath'</span>
-<a name="line-239"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-240"></a>      <span class='varid'>rel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath</span>
-<a name="line-241"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>rel</span><span class='layout'>)</span>
-<a name="line-242"></a>
-<a name="line-243"></a><a name="relLocPath"></a><span class='definition'>relLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>
-<a name="line-244"></a><span class='definition'>relLocPath</span>
-<a name="line-245"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-246"></a>      <span class='varid'>s1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>
-<a name="line-247"></a>      <span class='varid'>s2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>step'</span><span class='layout'>)</span>
-<a name="line-248"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>s1</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-249"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"relLocPath"</span>
-<a name="line-250"></a>
-<a name="line-251"></a>
-<a name="line-252"></a><a name="step'"></a><span class='comment'>-- Location Steps (2.1)</span>
-<a name="line-253"></a><span class='comment'>--</span>
-<a name="line-254"></a><span class='comment'>-- [4] Step</span>
-<a name="line-255"></a><span class='definition'>step'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>
-<a name="line-256"></a><span class='definition'>step'</span>
-<a name="line-257"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [11]</span>
-<a name="line-258"></a>      <span class='varid'>dslash</span>
-<a name="line-259"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>
-<a name="line-260"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='layout'>,</span><span class='varid'>s</span><span class='keyglyph'>]</span>
-<a name="line-261"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-262"></a>      <span class='keyword'>do</span>
-<a name="line-263"></a>      <span class='varid'>slash</span>
-<a name="line-264"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>
-<a name="line-265"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span>
-<a name="line-266"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"step'"</span>
-<a name="line-267"></a>
-<a name="line-268"></a><a name="step"></a><span class='definition'>step</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>
-<a name="line-269"></a><span class='definition'>step</span>
-<a name="line-270"></a>    <span class='keyglyph'>=</span> <span class='varid'>abbrStep</span>
-<a name="line-271"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-272"></a>      <span class='keyword'>do</span>
-<a name="line-273"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier'</span>
-<a name="line-274"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeTest</span> <span class='keyword'>as</span>
-<a name="line-275"></a>      <span class='varid'>pr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>
-<a name="line-276"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='keyword'>as</span> <span class='varid'>nt</span> <span class='varid'>pr</span><span class='layout'>)</span>
-<a name="line-277"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"step"</span>
-<a name="line-278"></a>
-<a name="line-279"></a>
-<a name="line-280"></a><a name="axisSpecifier'"></a><span class='comment'>-- [5] AxisSpecifier</span>
-<a name="line-281"></a><span class='definition'>axisSpecifier'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>
-<a name="line-282"></a><span class='definition'>axisSpecifier'</span>
-<a name="line-283"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>  <span class='comment'>-- [13]</span>
-<a name="line-284"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"@"</span><span class='layout'>)</span>
-<a name="line-285"></a>      <span class='varid'>return</span> <span class='conid'>Attribute</span>
-<a name="line-286"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-287"></a>      <span class='keyword'>do</span>
-<a name="line-288"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>Child</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='comment'>-- child-axis is default-axis</span>
-<a name="line-289"></a>                                 <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier</span>
-<a name="line-290"></a>                                 <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"::"</span><span class='layout'>)</span>
-<a name="line-291"></a>                                 <span class='varid'>return</span> <span class='varid'>a</span>
-<a name="line-292"></a>                               <span class='layout'>)</span>
-<a name="line-293"></a>                          <span class='layout'>)</span>
-<a name="line-294"></a>      <span class='varid'>return</span> <span class='keyword'>as</span>
-<a name="line-295"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"axisSpecifier'"</span>
-<a name="line-296"></a>
-<a name="line-297"></a>
-<a name="line-298"></a><a name="axisSpecifier"></a><span class='comment'>-- Axes (2.2)</span>
-<a name="line-299"></a><span class='comment'>--</span>
-<a name="line-300"></a><span class='comment'>-- [6] AxisName</span>
-<a name="line-301"></a><span class='definition'>axisSpecifier</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>
-<a name="line-302"></a><span class='definition'>axisSpecifier</span>
-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_ancestor_or_self</span><span class='layout'>,</span> <span class='conid'>AncestorOrSelf</span><span class='layout'>)</span>
-<a name="line-304"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_ancestor</span><span class='layout'>,</span> <span class='conid'>Ancestor</span><span class='layout'>)</span>
-<a name="line-305"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_attribute</span><span class='layout'>,</span> <span class='conid'>Attribute</span><span class='layout'>)</span>
-<a name="line-306"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_child</span><span class='layout'>,</span> <span class='conid'>Child</span><span class='layout'>)</span>
-<a name="line-307"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_descendant_or_self</span><span class='layout'>,</span> <span class='conid'>DescendantOrSelf</span><span class='layout'>)</span>
-<a name="line-308"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_descendant</span><span class='layout'>,</span> <span class='conid'>Descendant</span><span class='layout'>)</span>
-<a name="line-309"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_following_sibling</span><span class='layout'>,</span> <span class='conid'>FollowingSibling</span><span class='layout'>)</span>
-<a name="line-310"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_following</span><span class='layout'>,</span> <span class='conid'>Following</span><span class='layout'>)</span>
-<a name="line-311"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_namespace</span><span class='layout'>,</span> <span class='conid'>Namespace</span><span class='layout'>)</span>
-<a name="line-312"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_parent</span><span class='layout'>,</span> <span class='conid'>Parent</span><span class='layout'>)</span>
-<a name="line-313"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_preceding_sibling</span><span class='layout'>,</span> <span class='conid'>PrecedingSibling</span><span class='layout'>)</span>
-<a name="line-314"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_preceding</span><span class='layout'>,</span> <span class='conid'>Preceding</span><span class='layout'>)</span>
-<a name="line-315"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_self</span><span class='layout'>,</span> <span class='conid'>Self</span><span class='layout'>)</span>
-<a name="line-316"></a>             <span class='keyglyph'>]</span>
-<a name="line-317"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"axisSpecifier"</span>
-<a name="line-318"></a>
-<a name="line-319"></a>
-<a name="line-320"></a><a name="nodeTest"></a><span class='comment'>-- Node Tests (2.3)</span>
-<a name="line-321"></a><span class='comment'>--</span>
-<a name="line-322"></a><span class='comment'>-- [7] NodeTest</span>
-<a name="line-323"></a><span class='definition'>nodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>NodeTest</span>
-<a name="line-324"></a><span class='definition'>nodeTest</span> <span class='keyword'>as</span>
-<a name="line-325"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-326"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>nodeType'</span>
-<a name="line-327"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>nt</span><span class='layout'>)</span>
-<a name="line-328"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-329"></a>      <span class='keyword'>do</span>
-<a name="line-330"></a>      <span class='varid'>processInst</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pI</span>
-<a name="line-331"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>processInst</span><span class='layout'>)</span>
-<a name="line-332"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-333"></a>      <span class='keyword'>do</span>
-<a name="line-334"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nameTest</span> <span class='keyword'>as</span>
-<a name="line-335"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>nt</span><span class='layout'>)</span>
-<a name="line-336"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeTest"</span>
-<a name="line-337"></a>
-<a name="line-338"></a><a name="pI"></a><span class='definition'>pI</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
-<a name="line-339"></a><span class='definition'>pI</span>
-<a name="line-340"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-341"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='varid'>n_processing_instruction</span><span class='layout'>)</span>
-<a name="line-342"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>literal</span>
-<a name="line-343"></a>      <span class='varid'>return</span> <span class='varid'>li</span>
-<a name="line-344"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"Processing-Instruction"</span>
-<a name="line-345"></a>
-<a name="line-346"></a>
-<a name="line-347"></a><a name="predicate"></a><span class='comment'>-- Predicates (2.4)</span>
-<a name="line-348"></a><span class='comment'>--</span>
-<a name="line-349"></a><span class='comment'>-- [8] Predicate</span>
-<a name="line-350"></a><span class='comment'>-- [9] PredicateExpr</span>
-<a name="line-351"></a><span class='definition'>predicate</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-352"></a><span class='definition'>predicate</span> 
-<a name="line-353"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-354"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lbra</span> <span class='varid'>rbra</span> <span class='varid'>expr</span>
-<a name="line-355"></a>      <span class='varid'>return</span> <span class='varid'>ex</span>
-<a name="line-356"></a>
-<a name="line-357"></a>
-<a name="line-358"></a><span class='comment'>-- Abbreviated Syntax (2.5)</span>
-<a name="line-359"></a><span class='comment'>--</span>
-<a name="line-360"></a><span class='comment'>-- [10] AbbreviatedAbsoluteLocationPath: q.v. [2]</span>
-<a name="line-361"></a><span class='comment'>-- [11] AbbreviatedRelativeLocationPath: q.v. [4]</span>
-<a name="line-362"></a>
-<a name="line-363"></a><a name="abbrStep"></a><span class='comment'>-- [12] AbbreviatedStep</span>
-<a name="line-364"></a><span class='definition'>abbrStep</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>
-<a name="line-365"></a><span class='definition'>abbrStep</span> 
-<a name="line-366"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-367"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>".."</span><span class='layout'>)</span>
-<a name="line-368"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Parent</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-369"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-370"></a>      <span class='keyword'>do</span>
-<a name="line-371"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>
-<a name="line-372"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Self</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-373"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"abbrStep"</span>
-<a name="line-374"></a>
-<a name="line-375"></a><span class='comment'>-- [13] AbbreviatedAxisSpecifier: q.v. [5]</span>
-<a name="line-376"></a>
-<a name="line-377"></a>
-<a name="line-378"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-379"></a><span class='comment'>-- Expressions (3)</span>
-<a name="line-380"></a>
-<a name="line-381"></a>
-<a name="line-382"></a><a name="expr"></a><span class='comment'>-- Basics (3.1)</span>
-<a name="line-383"></a><span class='comment'>--</span>
-<a name="line-384"></a><span class='comment'>-- [14] Expr</span>
-<a name="line-385"></a><span class='definition'>expr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-386"></a><span class='definition'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>orExpr</span>
-<a name="line-387"></a>
-<a name="line-388"></a>
-<a name="line-389"></a><a name="primaryExpr"></a><span class='comment'>-- [15] PrimaryExpr</span>
-<a name="line-390"></a><span class='definition'>primaryExpr</span> <span class='keyglyph'>::</span>  <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-391"></a><span class='definition'>primaryExpr</span>
-<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-393"></a>      <span class='varid'>vr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>variableReference</span>
-<a name="line-394"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>vr</span><span class='layout'>)</span>
-<a name="line-395"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-396"></a>      <span class='keyword'>do</span>
-<a name="line-397"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>expr</span>
-<a name="line-398"></a>      <span class='varid'>return</span> <span class='varid'>ex</span>
-<a name="line-399"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-400"></a>      <span class='keyword'>do</span>
-<a name="line-401"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>literal</span>
-<a name="line-402"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>li</span><span class='layout'>)</span>
-<a name="line-403"></a>      <span class='varop'>&lt;|&gt;</span> 
-<a name="line-404"></a>      <span class='keyword'>do</span>
-<a name="line-405"></a>      <span class='varid'>num</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>number</span>
-<a name="line-406"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>num</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-407"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-408"></a>      <span class='keyword'>do</span>
-<a name="line-409"></a>      <span class='varid'>fc</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>functionCall</span>
-<a name="line-410"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>fc</span><span class='layout'>)</span>
-<a name="line-411"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"primaryExpr"</span>
-<a name="line-412"></a>
-<a name="line-413"></a>
-<a name="line-414"></a><a name="functionCall"></a><span class='comment'>-- Function Calls (3.2)</span>
-<a name="line-415"></a><span class='comment'>--</span>
-<a name="line-416"></a><span class='comment'>-- [16] FunctionCall</span>
-<a name="line-417"></a><span class='comment'>-- [17] Argument</span>
-<a name="line-418"></a><span class='definition'>functionCall</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-419"></a><span class='definition'>functionCall</span>
-<a name="line-420"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-421"></a>      <span class='varid'>fn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>functionName</span>
-<a name="line-422"></a>      <span class='varid'>arg</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span> <span class='varid'>sepBy</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='varid'>separator</span> <span class='chr'>','</span><span class='layout'>)</span> <span class='layout'>)</span>
-<a name="line-423"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>fn</span> <span class='varid'>arg</span><span class='layout'>)</span>
-<a name="line-424"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"functionCall"</span>
-<a name="line-425"></a>
-<a name="line-426"></a>
-<a name="line-427"></a><a name="unionExpr"></a><span class='comment'>-- Node-sets (3.3)</span>
-<a name="line-428"></a><span class='comment'>--</span>
-<a name="line-429"></a><span class='comment'>-- [18] UnionExpr</span>
-<a name="line-430"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-431"></a><span class='definition'>unionExpr</span>
-<a name="line-432"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-433"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pathExpr</span>
-<a name="line-434"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>unionOp</span> <span class='varid'>pathExpr</span><span class='layout'>)</span>
-<a name="line-435"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-436"></a>
-<a name="line-437"></a>
-<a name="line-438"></a><a name="pathExpr"></a><span class='comment'>-- [19] PathExpr</span>
-<a name="line-439"></a><span class='definition'>pathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-440"></a><span class='definition'>pathExpr</span>
-<a name="line-441"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-442"></a>      <span class='varid'>fe</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>filterExpr</span>
-<a name="line-443"></a>      <span class='varid'>path</span> <span class='keyglyph'>&lt;-</span> <span class='keyword'>do</span>
-<a name="line-444"></a>              <span class='varid'>dslash</span>
-<a name="line-445"></a>              <span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='varid'>t2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath'</span>
-<a name="line-446"></a>              <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>t2</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-447"></a>              <span class='varop'>&lt;|&gt;</span>
-<a name="line-448"></a>              <span class='keyword'>do</span>
-<a name="line-449"></a>              <span class='varid'>slash</span>
-<a name="line-450"></a>              <span class='varid'>relPath</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath'</span>
-<a name="line-451"></a>              <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>relPath</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-452"></a>              <span class='varop'>&lt;|&gt;</span>
-<a name="line-453"></a>              <span class='varid'>return</span> <span class='varid'>fe</span>
-<a name="line-454"></a>      <span class='varid'>return</span> <span class='varid'>path</span>
-<a name="line-455"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-456"></a>      <span class='keyword'>do</span>
-<a name="line-457"></a>      <span class='varid'>lp</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>locPath</span>
-<a name="line-458"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-459"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"pathExpr"</span>
-<a name="line-460"></a>
-<a name="line-461"></a>
-<a name="line-462"></a><a name="filterExpr"></a><span class='comment'>-- [20] FilterExpr</span>
-<a name="line-463"></a><span class='definition'>filterExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-464"></a><span class='definition'>filterExpr</span>
-<a name="line-465"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-466"></a>      <span class='varid'>prim</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>primaryExpr</span>
-<a name="line-467"></a>      <span class='varid'>predicates</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>
-<a name="line-468"></a>      <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>predicates</span> <span class='varop'>&gt;</span> <span class='num'>0</span>
-<a name="line-469"></a>        <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>prim</span> <span class='conop'>:</span> <span class='varid'>predicates</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-470"></a>        <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>prim</span>
-<a name="line-471"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"filterExpr"</span>
-<a name="line-472"></a>
-<a name="line-473"></a>
-<a name="line-474"></a><a name="orExpr"></a><span class='comment'>-- Booleans (3.4)</span>
-<a name="line-475"></a><span class='comment'>--</span>
-<a name="line-476"></a><span class='comment'>-- [21] OrExpr</span>
-<a name="line-477"></a><span class='definition'>orExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-478"></a><span class='definition'>orExpr</span>
-<a name="line-479"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-480"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>andExpr</span>
-<a name="line-481"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>orOp</span> <span class='varid'>andExpr</span><span class='layout'>)</span>
-<a name="line-482"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-483"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"orExpr"</span>
-<a name="line-484"></a>
-<a name="line-485"></a>
-<a name="line-486"></a><a name="andExpr"></a><span class='comment'>-- [22] AndExpr</span>
-<a name="line-487"></a><span class='definition'>andExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-488"></a><span class='definition'>andExpr</span>
-<a name="line-489"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-490"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>equalityExpr</span>
-<a name="line-491"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>andOp</span> <span class='varid'>equalityExpr</span><span class='layout'>)</span>
-<a name="line-492"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-493"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"andExpr"</span>
-<a name="line-494"></a>
-<a name="line-495"></a>
-<a name="line-496"></a><a name="equalityExpr"></a><span class='comment'>-- [23] EqualityExpr</span>
-<a name="line-497"></a><span class='definition'>equalityExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-498"></a><span class='definition'>equalityExpr</span>
-<a name="line-499"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-500"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relationalExpr</span>
-<a name="line-501"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>eqOp</span> <span class='varid'>relationalExpr</span><span class='layout'>)</span>
-<a name="line-502"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-503"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"equalityExpr"</span>
-<a name="line-504"></a>
-<a name="line-505"></a>
-<a name="line-506"></a><a name="relationalExpr"></a><span class='comment'>-- [24] RelationalExpr</span>
-<a name="line-507"></a><span class='definition'>relationalExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-508"></a><span class='definition'>relationalExpr</span>
-<a name="line-509"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-510"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>additiveExpr</span>
-<a name="line-511"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>relOp</span> <span class='varid'>additiveExpr</span><span class='layout'>)</span>
-<a name="line-512"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-513"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"relationalExpr"</span>
-<a name="line-514"></a>
-<a name="line-515"></a>
-<a name="line-516"></a><a name="additiveExpr"></a><span class='comment'>-- Numbers (3.5)</span>
-<a name="line-517"></a><span class='comment'>--</span>
-<a name="line-518"></a><span class='comment'>-- [25] AdditiveExpr</span>
-<a name="line-519"></a><span class='definition'>additiveExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-520"></a><span class='definition'>additiveExpr</span>
-<a name="line-521"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-522"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>multiplicativeExpr</span>
-<a name="line-523"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>addOp</span> <span class='varid'>multiplicativeExpr</span><span class='layout'>)</span>
-<a name="line-524"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-525"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"additiveExpr"</span>
-<a name="line-526"></a>
-<a name="line-527"></a>
-<a name="line-528"></a><a name="multiplicativeExpr"></a><span class='comment'>-- [26] MultiplicativeExpr</span>
-<a name="line-529"></a><span class='definition'>multiplicativeExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-530"></a><span class='definition'>multiplicativeExpr</span>
-<a name="line-531"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-532"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unaryExpr</span>
-<a name="line-533"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>multiOp</span> <span class='varid'>unaryExpr</span><span class='layout'>)</span>
-<a name="line-534"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
-<a name="line-535"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"multiplicativeExpr"</span>
-<a name="line-536"></a>
-<a name="line-537"></a>
-<a name="line-538"></a><a name="unaryExpr"></a><span class='comment'>-- [27] UnaryExpr</span>
-<a name="line-539"></a><span class='definition'>unaryExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
-<a name="line-540"></a><span class='definition'>unaryExpr</span>
-<a name="line-541"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-542"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"-"</span><span class='layout'>)</span>
-<a name="line-543"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unaryExpr</span>
-<a name="line-544"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Unary</span> <span class='keyglyph'>[</span><span class='varid'>u</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-545"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-546"></a>      <span class='keyword'>do</span>
-<a name="line-547"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unionExpr</span>
-<a name="line-548"></a>      <span class='varid'>return</span> <span class='varid'>u</span>
-<a name="line-549"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"unaryExpr"</span>
-<a name="line-550"></a>
-<a name="line-551"></a>
-<a name="line-552"></a><a name="literal"></a><span class='comment'>-- Lexical Structure (3.7)</span>
-<a name="line-553"></a><span class='comment'>--</span>
-<a name="line-554"></a><span class='comment'>-- [29] Literal</span>
-<a name="line-555"></a><span class='comment'>-- systemLiteral from XmlParser is used</span>
-<a name="line-556"></a><span class='definition'>literal</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
-<a name="line-557"></a><span class='definition'>literal</span> <span class='keyglyph'>=</span> <span class='varid'>systemLiteral</span>
-<a name="line-558"></a>
-<a name="line-559"></a>
-<a name="line-560"></a><a name="number"></a><span class='comment'>-- [30] Number</span>
-<a name="line-561"></a><span class='definition'>number</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
-<a name="line-562"></a><span class='definition'>number</span>
-<a name="line-563"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-564"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>
-<a name="line-565"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
-<a name="line-566"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"0."</span> <span class='varop'>++</span> <span class='varid'>d</span><span class='layout'>)</span>
-<a name="line-567"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-568"></a>      <span class='keyword'>do</span>
-<a name="line-569"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
-<a name="line-570"></a>      <span class='varid'>d1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-571"></a>                        <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>
-<a name="line-572"></a>                        <span class='varid'>d2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>"0"</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='varid'>digit</span><span class='layout'>)</span>
-<a name="line-573"></a>                        <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>d2</span><span class='layout'>)</span>
-<a name="line-574"></a>                      <span class='layout'>)</span>
-<a name="line-575"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>d</span> <span class='varop'>++</span> <span class='varid'>d1</span><span class='layout'>)</span>
-<a name="line-576"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"number"</span>
-<a name="line-577"></a>
-<a name="line-578"></a>
-<a name="line-579"></a><span class='comment'>-- [35] FunctionName</span>
-<a name="line-580"></a><span class='comment'>-- no nodetype name is allowed as a function name</span>
-<a name="line-581"></a><span class='comment'>-- Tim Walkenhorst:</span>
-<a name="line-582"></a><span class='comment'>--   Change in String encoding for function name</span>
-<a name="line-583"></a><span class='comment'>--</span>
-<a name="line-584"></a><span class='comment'>--         previoulsy:      new:</span>
-<a name="line-585"></a><span class='comment'>--           </span>
-<a name="line-586"></a><span class='comment'>--         name             name</span>
-<a name="line-587"></a><span class='comment'>--         pref:name        {<a href="http://uri-for-pref">http://uri-for-pref</a>}name</span>
-<a name="line-588"></a>
-<a name="line-589"></a><a name="functionName"></a><span class='definition'>functionName</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
-<a name="line-590"></a><span class='definition'>functionName</span>
-<a name="line-591"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>           
-<a name="line-592"></a>            <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>qName</span>
-<a name="line-593"></a>            <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
-<a name="line-594"></a>            <span class='varid'>u</span>      <span class='keyglyph'>&lt;-</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>p</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>"}"</span>
-<a name="line-595"></a>            <span class='keyword'>let</span> <span class='varid'>fn</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>u</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyword'>in</span>
-<a name="line-596"></a>              <span class='keyword'>if</span> <span class='varid'>fn</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"processing-instruction"</span><span class='layout'>,</span> <span class='str'>"comment"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"node"</span><span class='keyglyph'>]</span>
-<a name="line-597"></a>                <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='layout'>(</span><span class='str'>"function name: "</span> <span class='varop'>++</span> <span class='varid'>fn</span> <span class='varop'>++</span> <span class='str'>"not allowed"</span><span class='layout'>)</span>
-<a name="line-598"></a>                <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>fn</span>
-<a name="line-599"></a>          <span class='layout'>)</span>
-<a name="line-600"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"functionName"</span>
-<a name="line-601"></a>
-<a name="line-602"></a>
-<a name="line-603"></a><a name="variableReference"></a><span class='comment'>-- [36] VariableReference</span>
-<a name="line-604"></a><span class='definition'>variableReference</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-605"></a><span class='definition'>variableReference</span>
-<a name="line-606"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-607"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"$"</span><span class='layout'>)</span>
-<a name="line-608"></a>      <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span><span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>qName</span>
-<a name="line-609"></a>      <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
-<a name="line-610"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span>
-<a name="line-611"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"variableReference"</span>
-<a name="line-612"></a>
-<a name="line-613"></a>
-<a name="line-614"></a><a name="nameTest"></a><span class='comment'>-- [37] NameTest</span>
-<a name="line-615"></a><span class='definition'>nameTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>QName</span>
-<a name="line-616"></a><span class='definition'>nameTest</span> <span class='keyword'>as</span>
-<a name="line-617"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-618"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"*"</span><span class='layout'>)</span>
-<a name="line-619"></a>      <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
-<a name="line-620"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkName</span> <span class='str'>"*"</span><span class='layout'>)</span>
-<a name="line-621"></a>      <span class='varop'>&lt;|&gt;</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-622"></a>                  <span class='varid'>pre</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ncName</span>
-<a name="line-623"></a>                  <span class='varid'>symbol</span> <span class='str'>":*"</span>
-<a name="line-624"></a>                  <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
-<a name="line-625"></a>                  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkNsName</span> <span class='layout'>(</span><span class='varid'>pre</span> <span class='varop'>++</span> <span class='str'>":*"</span><span class='layout'>)</span> <span class='str'>""</span><span class='layout'>)</span>                
-<a name="line-626"></a>              <span class='layout'>)</span>
-<a name="line-627"></a>      <span class='varop'>&lt;|&gt;</span>
-<a name="line-628"></a>      <span class='keyword'>do</span>
-<a name="line-629"></a>      <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span><span class='varid'>local</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>qName</span>      	      
-<a name="line-630"></a>      <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
-<a name="line-631"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkNsName</span> <span class='layout'>(</span><span class='varid'>pre</span> <span class='varop'>++</span> <span class='str'>":"</span> <span class='varop'>++</span> <span class='varid'>local</span><span class='layout'>)</span> <span class='str'>""</span><span class='layout'>)</span>
-<a name="line-632"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nameTest"</span>	
-<a name="line-633"></a>
-<a name="line-634"></a>	
-<a name="line-635"></a><a name="nodeType'"></a><span class='comment'>-- [38] NodeType</span>
-<a name="line-636"></a><span class='definition'>nodeType'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>
-<a name="line-637"></a><span class='definition'>nodeType'</span> 
-<a name="line-638"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-639"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeType</span>
-<a name="line-640"></a>      <span class='varid'>lpar</span>
-<a name="line-641"></a>      <span class='varid'>rpar</span>
-<a name="line-642"></a>      <span class='varid'>return</span> <span class='varid'>nt</span>
-<a name="line-643"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeType'"</span>
-<a name="line-644"></a>	
-<a name="line-645"></a><a name="nodeType"></a><span class='definition'>nodeType</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>
-<a name="line-646"></a><span class='definition'>nodeType</span> 
-<a name="line-647"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_comment</span><span class='layout'>,</span> <span class='conid'>XPCommentNode</span><span class='layout'>)</span>
-<a name="line-648"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_text</span><span class='layout'>,</span> <span class='conid'>XPTextNode</span><span class='layout'>)</span>
-<a name="line-649"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_processing_instruction</span><span class='layout'>,</span> <span class='conid'>XPPINode</span><span class='layout'>)</span>
-<a name="line-650"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_node</span><span class='layout'>,</span> <span class='conid'>XPNode</span><span class='layout'>)</span>
-<a name="line-651"></a>             <span class='keyglyph'>]</span>
-<a name="line-652"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeType"</span>
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006-2008 Uwe Schmidt
+<a name="line-6"></a>   License    : MIT
+<a name="line-7"></a>
+<a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-9"></a>   Stability  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   the XPath Parser
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>parseNumber</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>parseXPath</span>
+<a name="line-21"></a>    <span class='layout'>)</span>
+<a name="line-22"></a><span class='keyword'>where</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<a name="line-29"></a>
+<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathKeywords</span>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>
+<a name="line-34"></a>    <span class='layout'>(</span> <span class='varid'>separator</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>systemLiteral</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>skipS0</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>ncName</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>qName</span>
+<a name="line-39"></a>    <span class='layout'>)</span>
+<a name="line-40"></a>
+<a name="line-41"></a><a name="lookupNs"></a><span class='definition'>lookupNs</span>				<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span>
+<a name="line-42"></a><span class='definition'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>
+<a name="line-43"></a>					<span class='comment'>-- downwards compatibility: if namespace env is not supported</span>
+<a name="line-44"></a>					<span class='comment'>-- no error is raised, but the uri remains empty</span>
+<a name="line-45"></a>					<span class='comment'>-- not conformant to XPath spec:</span>
+<a name="line-46"></a>					<span class='comment'>-- If namespaces are used, a complete env must be supported,</span>
+<a name="line-47"></a>					<span class='comment'>-- but we don't care about this</span>
+<a name="line-48"></a>					<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>nullXName</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>
+<a name="line-49"></a>
+<a name="line-50"></a><a name="enhanceAttrQName"></a><span class='definition'>enhanceAttrQName</span>			<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-51"></a><span class='definition'>enhanceAttrQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>
+<a name="line-52"></a>    <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='layout'>(</span><span class='varid'>namePrefix'</span> <span class='varid'>qn</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>qn</span>
+<a name="line-53"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>				<span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="enhanceQName"></a><span class='definition'>enhanceQName</span> 				<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-56"></a><span class='definition'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>			<span class='keyglyph'>=</span> <span class='varid'>setNamespaceUri'</span> <span class='layout'>(</span> <span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>namePrefix'</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-57"></a>
+<a name="line-58"></a><a name="enhanceQN"></a><span class='definition'>enhanceQN</span>				<span class='keyglyph'>::</span>  <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-59"></a><span class='definition'>enhanceQN</span> <span class='conid'>Attribute</span>			<span class='keyglyph'>=</span> <span class='varid'>enhanceAttrQName</span>
+<a name="line-60"></a><span class='definition'>enhanceQN</span> <span class='keyword'>_</span>				<span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="XParser"></a><span class='keyword'>type</span> <span class='conid'>XParser</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='conid'>NsEnv</span> <span class='varid'>a</span>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-65"></a><span class='comment'>-- parse functions which are used in the XPathFct module</span>
+<a name="line-66"></a>
+<a name="line-67"></a><a name="parseNumber"></a><span class='comment'>-- |</span>
+<a name="line-68"></a><span class='comment'>-- parsing a number, parseNumber is used in "XPathFct"</span>
+<a name="line-69"></a><span class='comment'>-- by the number function</span>
+<a name="line-70"></a><span class='comment'>--</span>
+<a name="line-71"></a><span class='comment'>--    - returns : the parsed number as 'XPNumber' float</span>
+<a name="line-72"></a><span class='comment'>--                or 'XPVNumber' 'NaN' in case of error</span>
+<a name="line-73"></a><span class='definition'>parseNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-74"></a><span class='definition'>parseNumber</span> <span class='varid'>s</span>
+<a name="line-75"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>runParser</span> <span class='varid'>parseNumber'</span> <span class='conid'>[]</span> <span class='comment'>{- Map.empty -}</span> <span class='str'>""</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-76"></a>        <span class='conid'>Left</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
+<a name="line-77"></a>        <span class='conid'>Right</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>x</span> <span class='keyglyph'>::</span> <span class='conid'>Float</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='num'>0</span>
+<a name="line-78"></a>                      <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>
+<a name="line-79"></a>                      <span class='keyword'>else</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="parseNumber'"></a><span class='definition'>parseNumber'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
+<a name="line-82"></a><span class='definition'>parseNumber'</span>
+<a name="line-83"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-84"></a>      <span class='varid'>skipS0</span>
+<a name="line-85"></a>      <span class='varid'>m</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"-"</span><span class='layout'>)</span>
+<a name="line-86"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>number</span>
+<a name="line-87"></a>      <span class='varid'>skipS0</span>
+<a name="line-88"></a>      <span class='varid'>eof</span>
+<a name="line-89"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-92"></a>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='comment'>-- |</span>
+<a name="line-95"></a><span class='comment'>-- the main entry point:</span>
+<a name="line-96"></a><span class='comment'>-- parsing a XPath expression</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="parseXPath"></a><span class='definition'>parseXPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-99"></a><span class='definition'>parseXPath</span>
+<a name="line-100"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-101"></a>      <span class='varid'>skipS0</span>
+<a name="line-102"></a>      <span class='varid'>xPathExpr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>expr</span>
+<a name="line-103"></a>      <span class='varid'>skipS0</span>
+<a name="line-104"></a>      <span class='varid'>eof</span>
+<a name="line-105"></a>      <span class='varid'>return</span> <span class='varid'>xPathExpr</span>
+<a name="line-106"></a>
+<a name="line-107"></a>
+<a name="line-108"></a><a name="lpar"></a><span class='comment'>-- some useful token and symbol parser</span>
+<a name="line-109"></a><span class='definition'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span><span class='layout'>,</span> <span class='varid'>lbra</span><span class='layout'>,</span> <span class='varid'>rbra</span><span class='layout'>,</span> <span class='varid'>slash</span><span class='layout'>,</span> <span class='varid'>dslash</span>	<span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>()</span>
+<a name="line-110"></a>
+<a name="line-111"></a><span class='definition'>lpar</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"("</span><span class='layout'>)</span>
+<a name="line-112"></a><a name="rpar"></a><span class='definition'>rpar</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>")"</span><span class='layout'>)</span>
+<a name="line-113"></a><a name="lbra"></a><span class='definition'>lbra</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"["</span><span class='layout'>)</span>
+<a name="line-114"></a><a name="rbra"></a><span class='definition'>rbra</span>   <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"]"</span><span class='layout'>)</span>
+<a name="line-115"></a><a name="slash"></a><span class='definition'>slash</span>  <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"/"</span><span class='layout'>)</span>
+<a name="line-116"></a><a name="dslash"></a><span class='definition'>dslash</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"//"</span><span class='layout'>)</span>
+<a name="line-117"></a>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="tokenParser"></a><span class='definition'>tokenParser</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>()</span>
+<a name="line-120"></a><span class='definition'>tokenParser</span> <span class='varid'>p</span>
+<a name="line-121"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-122"></a>            <span class='varid'>skipS0</span>
+<a name="line-123"></a>            <span class='varid'>p</span>
+<a name="line-124"></a>            <span class='varid'>skipS0</span>
+<a name="line-125"></a>           <span class='layout'>)</span>
+<a name="line-126"></a>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="symbolParser"></a><span class='definition'>symbolParser</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='varid'>a</span>
+<a name="line-129"></a><span class='definition'>symbolParser</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span><span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-131"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-132"></a>      <span class='varid'>return</span> <span class='varid'>a</span>
+<a name="line-133"></a>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="symbol"></a><span class='definition'>symbol</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
+<a name="line-136"></a><span class='definition'>symbol</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-137"></a>
+<a name="line-138"></a>
+<a name="line-139"></a>
+<a name="line-140"></a><a name="orOp"></a><span class='comment'>--  operation parser</span>
+<a name="line-141"></a><span class='definition'>orOp</span><span class='layout'>,</span> <span class='varid'>andOp</span><span class='layout'>,</span> <span class='varid'>eqOp</span><span class='layout'>,</span> <span class='varid'>relOp</span><span class='layout'>,</span> <span class='varid'>addOp</span><span class='layout'>,</span> <span class='varid'>multiOp</span><span class='layout'>,</span> <span class='varid'>unionOp</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Op</span>
+<a name="line-142"></a>
+<a name="line-143"></a><span class='definition'>orOp</span>  <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"or"</span><span class='layout'>,</span> <span class='conid'>Or</span><span class='layout'>)</span>
+<a name="line-144"></a><a name="andOp"></a><span class='definition'>andOp</span> <span class='keyglyph'>=</span>	<span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"and"</span><span class='layout'>,</span> <span class='conid'>And</span><span class='layout'>)</span>
+<a name="line-145"></a>
+<a name="line-146"></a><a name="eqOp"></a><span class='definition'>eqOp</span>
+<a name="line-147"></a>    <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"="</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>
+<a name="line-148"></a>      <span class='varop'>&lt;|&gt;</span> 
+<a name="line-149"></a>      <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"!="</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='layout'>)</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="relOp"></a><span class='definition'>relOp</span>
+<a name="line-152"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&lt;="</span><span class='layout'>,</span> <span class='conid'>LessEq</span><span class='layout'>)</span>
+<a name="line-153"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&gt;="</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='layout'>)</span>
+<a name="line-154"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&lt;"</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>)</span>
+<a name="line-155"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&gt;"</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>)</span>
+<a name="line-156"></a>             <span class='keyglyph'>]</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="addOp"></a><span class='definition'>addOp</span>
+<a name="line-159"></a>    <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"+"</span><span class='layout'>,</span> <span class='conid'>Plus</span><span class='layout'>)</span>
+<a name="line-160"></a>      <span class='varop'>&lt;|&gt;</span> 
+<a name="line-161"></a>      <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"-"</span><span class='layout'>,</span> <span class='conid'>Minus</span><span class='layout'>)</span>
+<a name="line-162"></a>
+<a name="line-163"></a>
+<a name="line-164"></a><a name="multiOp"></a><span class='definition'>multiOp</span>
+<a name="line-165"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"*"</span><span class='layout'>,</span> <span class='conid'>Mult</span><span class='layout'>)</span>
+<a name="line-166"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"mod"</span><span class='layout'>,</span> <span class='conid'>Mod</span><span class='layout'>)</span>
+<a name="line-167"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"div"</span><span class='layout'>,</span> <span class='conid'>Div</span><span class='layout'>)</span>
+<a name="line-168"></a>             <span class='keyglyph'>]</span>
+<a name="line-169"></a>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="unionOp"></a><span class='definition'>unionOp</span>	<span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"|"</span><span class='layout'>,</span> <span class='conid'>Union</span><span class='layout'>)</span>
+<a name="line-172"></a>
+<a name="line-173"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="mkExprNode"></a><span class='definition'>mkExprNode</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Op</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-176"></a><span class='definition'>mkExprNode</span> <span class='varid'>e1</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-177"></a><span class='definition'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>l</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>op</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> 
+<a name="line-178"></a>    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rest</span>
+<a name="line-179"></a>      <span class='keyword'>then</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>snd</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-180"></a>      <span class='keyword'>else</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>init</span> <span class='varid'>same</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>mkExprNode</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>last</span> <span class='varid'>same</span><span class='layout'>)</span> <span class='varid'>rest</span><span class='keyglyph'>]</span>
+<a name="line-181"></a>  <span class='keyword'>where</span> 
+<a name="line-182"></a>    <span class='layout'>(</span><span class='varid'>same</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='varid'>op</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>l</span>
+<a name="line-183"></a>    
+<a name="line-184"></a><span class='comment'>-- Tim Walkenhorst, original expr. below:</span>
+<a name="line-185"></a><span class='comment'>-- It seems mkExprNode is called only with operators of the same precedence, that should make it fixable</span>
+<a name="line-186"></a><span class='comment'>-- FIXED, see above!</span>
+<a name="line-187"></a><span class='comment'>--mkExprNode e1 l@((op, _): _) = GenExpr op (e1:(map snd l))  -- Less than ideal: 1+1-1 = 3 ???</span>
+<a name="line-188"></a>
+<a name="line-189"></a>
+<a name="line-190"></a><span class='comment'>--GenExpr op (e1:(map snd l))</span>
+<a name="line-191"></a>
+<a name="line-192"></a>
+<a name="line-193"></a><a name="exprRest"></a><span class='definition'>exprRest</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='layout'>(</span><span class='conid'>Op</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span>
+<a name="line-194"></a><span class='definition'>exprRest</span> <span class='varid'>parserOp</span> <span class='varid'>parserExpr</span>
+<a name="line-195"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-196"></a>      <span class='varid'>op</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parserOp</span>
+<a name="line-197"></a>      <span class='varid'>e2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parserExpr</span>
+<a name="line-198"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>op</span><span class='layout'>,</span> <span class='varid'>e2</span><span class='layout'>)</span>
+<a name="line-199"></a>
+<a name="line-200"></a>
+<a name="line-201"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-202"></a>
+<a name="line-203"></a><a name="descOrSelfStep"></a><span class='comment'>-- abbreviation of "//"</span>
+<a name="line-204"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>::</span> <span class='conid'>XStep</span> 
+<a name="line-205"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>DescendantOrSelf</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-206"></a>
+<a name="line-207"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-208"></a><span class='comment'>-- Location Paths (2)</span>
+<a name="line-209"></a>
+<a name="line-210"></a>
+<a name="line-211"></a><a name="locPath"></a><span class='comment'>-- [1] LocationPath </span>
+<a name="line-212"></a><span class='definition'>locPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>
+<a name="line-213"></a><span class='definition'>locPath</span>
+<a name="line-214"></a>    <span class='keyglyph'>=</span> <span class='varid'>absLocPath</span>
+<a name="line-215"></a>      <span class='varop'>&lt;|&gt;</span> 
+<a name="line-216"></a>      <span class='varid'>relLocPath'</span>
+<a name="line-217"></a>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="absLocPath"></a><span class='comment'>-- [2] AbsoluteLocationPath</span>
+<a name="line-220"></a><span class='definition'>absLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>
+<a name="line-221"></a><span class='definition'>absLocPath</span>
+<a name="line-222"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [10]</span>
+<a name="line-223"></a>      <span class='varid'>dslash</span>
+<a name="line-224"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath</span>
+<a name="line-225"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-226"></a>      <span class='varop'>&lt;|&gt;</span> 
+<a name="line-227"></a>      <span class='keyword'>do</span>
+<a name="line-228"></a>      <span class='varid'>slash</span>
+<a name="line-229"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>relLocPath</span>
+<a name="line-230"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-231"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"absLocPath"</span>
+<a name="line-232"></a>
+<a name="line-233"></a>
+<a name="line-234"></a><a name="relLocPath'"></a><span class='comment'>-- [3] RelativeLocationPath</span>
+<a name="line-235"></a><span class='definition'>relLocPath'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>
+<a name="line-236"></a><span class='definition'>relLocPath'</span>
+<a name="line-237"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-238"></a>      <span class='varid'>rel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath</span>
+<a name="line-239"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>rel</span><span class='layout'>)</span>
+<a name="line-240"></a>
+<a name="line-241"></a><a name="relLocPath"></a><span class='definition'>relLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>
+<a name="line-242"></a><span class='definition'>relLocPath</span>
+<a name="line-243"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-244"></a>      <span class='varid'>s1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>
+<a name="line-245"></a>      <span class='varid'>s2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>step'</span><span class='layout'>)</span>
+<a name="line-246"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>s1</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-247"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"relLocPath"</span>
+<a name="line-248"></a>
+<a name="line-249"></a>
+<a name="line-250"></a><a name="step'"></a><span class='comment'>-- Location Steps (2.1)</span>
+<a name="line-251"></a><span class='comment'>--</span>
+<a name="line-252"></a><span class='comment'>-- [4] Step</span>
+<a name="line-253"></a><span class='definition'>step'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>
+<a name="line-254"></a><span class='definition'>step'</span>
+<a name="line-255"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [11]</span>
+<a name="line-256"></a>      <span class='varid'>dslash</span>
+<a name="line-257"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>
+<a name="line-258"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='layout'>,</span><span class='varid'>s</span><span class='keyglyph'>]</span>
+<a name="line-259"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-260"></a>      <span class='keyword'>do</span>
+<a name="line-261"></a>      <span class='varid'>slash</span>
+<a name="line-262"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>
+<a name="line-263"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span>
+<a name="line-264"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"step'"</span>
+<a name="line-265"></a>
+<a name="line-266"></a><a name="step"></a><span class='definition'>step</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>
+<a name="line-267"></a><span class='definition'>step</span>
+<a name="line-268"></a>    <span class='keyglyph'>=</span> <span class='varid'>abbrStep</span>
+<a name="line-269"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-270"></a>      <span class='keyword'>do</span>
+<a name="line-271"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier'</span>
+<a name="line-272"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeTest</span> <span class='keyword'>as</span>
+<a name="line-273"></a>      <span class='varid'>pr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>
+<a name="line-274"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='keyword'>as</span> <span class='varid'>nt</span> <span class='varid'>pr</span><span class='layout'>)</span>
+<a name="line-275"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"step"</span>
+<a name="line-276"></a>
+<a name="line-277"></a>
+<a name="line-278"></a><a name="axisSpecifier'"></a><span class='comment'>-- [5] AxisSpecifier</span>
+<a name="line-279"></a><span class='definition'>axisSpecifier'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>
+<a name="line-280"></a><span class='definition'>axisSpecifier'</span>
+<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>  <span class='comment'>-- [13]</span>
+<a name="line-282"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"@"</span><span class='layout'>)</span>
+<a name="line-283"></a>      <span class='varid'>return</span> <span class='conid'>Attribute</span>
+<a name="line-284"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-285"></a>      <span class='keyword'>do</span>
+<a name="line-286"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>Child</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='comment'>-- child-axis is default-axis</span>
+<a name="line-287"></a>                                 <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier</span>
+<a name="line-288"></a>                                 <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"::"</span><span class='layout'>)</span>
+<a name="line-289"></a>                                 <span class='varid'>return</span> <span class='varid'>a</span>
+<a name="line-290"></a>                               <span class='layout'>)</span>
+<a name="line-291"></a>                          <span class='layout'>)</span>
+<a name="line-292"></a>      <span class='varid'>return</span> <span class='keyword'>as</span>
+<a name="line-293"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"axisSpecifier'"</span>
+<a name="line-294"></a>
+<a name="line-295"></a>
+<a name="line-296"></a><a name="axisSpecifier"></a><span class='comment'>-- Axes (2.2)</span>
+<a name="line-297"></a><span class='comment'>--</span>
+<a name="line-298"></a><span class='comment'>-- [6] AxisName</span>
+<a name="line-299"></a><span class='definition'>axisSpecifier</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>
+<a name="line-300"></a><span class='definition'>axisSpecifier</span>
+<a name="line-301"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_ancestor_or_self</span><span class='layout'>,</span> <span class='conid'>AncestorOrSelf</span><span class='layout'>)</span>
+<a name="line-302"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_ancestor</span><span class='layout'>,</span> <span class='conid'>Ancestor</span><span class='layout'>)</span>
+<a name="line-303"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_attribute</span><span class='layout'>,</span> <span class='conid'>Attribute</span><span class='layout'>)</span>
+<a name="line-304"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_child</span><span class='layout'>,</span> <span class='conid'>Child</span><span class='layout'>)</span>
+<a name="line-305"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_descendant_or_self</span><span class='layout'>,</span> <span class='conid'>DescendantOrSelf</span><span class='layout'>)</span>
+<a name="line-306"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_descendant</span><span class='layout'>,</span> <span class='conid'>Descendant</span><span class='layout'>)</span>
+<a name="line-307"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_following_sibling</span><span class='layout'>,</span> <span class='conid'>FollowingSibling</span><span class='layout'>)</span>
+<a name="line-308"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_following</span><span class='layout'>,</span> <span class='conid'>Following</span><span class='layout'>)</span>
+<a name="line-309"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_namespace</span><span class='layout'>,</span> <span class='conid'>Namespace</span><span class='layout'>)</span>
+<a name="line-310"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_parent</span><span class='layout'>,</span> <span class='conid'>Parent</span><span class='layout'>)</span>
+<a name="line-311"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_preceding_sibling</span><span class='layout'>,</span> <span class='conid'>PrecedingSibling</span><span class='layout'>)</span>
+<a name="line-312"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_preceding</span><span class='layout'>,</span> <span class='conid'>Preceding</span><span class='layout'>)</span>
+<a name="line-313"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_self</span><span class='layout'>,</span> <span class='conid'>Self</span><span class='layout'>)</span>
+<a name="line-314"></a>             <span class='keyglyph'>]</span>
+<a name="line-315"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"axisSpecifier"</span>
+<a name="line-316"></a>
+<a name="line-317"></a>
+<a name="line-318"></a><a name="nodeTest"></a><span class='comment'>-- Node Tests (2.3)</span>
+<a name="line-319"></a><span class='comment'>--</span>
+<a name="line-320"></a><span class='comment'>-- [7] NodeTest</span>
+<a name="line-321"></a><span class='definition'>nodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>NodeTest</span>
+<a name="line-322"></a><span class='definition'>nodeTest</span> <span class='keyword'>as</span>
+<a name="line-323"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-324"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>nodeType'</span>
+<a name="line-325"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>nt</span><span class='layout'>)</span>
+<a name="line-326"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-327"></a>      <span class='keyword'>do</span>
+<a name="line-328"></a>      <span class='varid'>processInst</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pI</span>
+<a name="line-329"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>processInst</span><span class='layout'>)</span>
+<a name="line-330"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-331"></a>      <span class='keyword'>do</span>
+<a name="line-332"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nameTest</span> <span class='keyword'>as</span>
+<a name="line-333"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>nt</span><span class='layout'>)</span>
+<a name="line-334"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeTest"</span>
+<a name="line-335"></a>
+<a name="line-336"></a><a name="pI"></a><span class='definition'>pI</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
+<a name="line-337"></a><span class='definition'>pI</span>
+<a name="line-338"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-339"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='varid'>n_processing_instruction</span><span class='layout'>)</span>
+<a name="line-340"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>literal</span>
+<a name="line-341"></a>      <span class='varid'>return</span> <span class='varid'>li</span>
+<a name="line-342"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"Processing-Instruction"</span>
+<a name="line-343"></a>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="predicate"></a><span class='comment'>-- Predicates (2.4)</span>
+<a name="line-346"></a><span class='comment'>--</span>
+<a name="line-347"></a><span class='comment'>-- [8] Predicate</span>
+<a name="line-348"></a><span class='comment'>-- [9] PredicateExpr</span>
+<a name="line-349"></a><span class='definition'>predicate</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-350"></a><span class='definition'>predicate</span> 
+<a name="line-351"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-352"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lbra</span> <span class='varid'>rbra</span> <span class='varid'>expr</span>
+<a name="line-353"></a>      <span class='varid'>return</span> <span class='varid'>ex</span>
+<a name="line-354"></a>
+<a name="line-355"></a>
+<a name="line-356"></a><span class='comment'>-- Abbreviated Syntax (2.5)</span>
+<a name="line-357"></a><span class='comment'>--</span>
+<a name="line-358"></a><span class='comment'>-- [10] AbbreviatedAbsoluteLocationPath: q.v. [2]</span>
+<a name="line-359"></a><span class='comment'>-- [11] AbbreviatedRelativeLocationPath: q.v. [4]</span>
+<a name="line-360"></a>
+<a name="line-361"></a><a name="abbrStep"></a><span class='comment'>-- [12] AbbreviatedStep</span>
+<a name="line-362"></a><span class='definition'>abbrStep</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>
+<a name="line-363"></a><span class='definition'>abbrStep</span> 
+<a name="line-364"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-365"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>".."</span><span class='layout'>)</span>
+<a name="line-366"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Parent</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-367"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-368"></a>      <span class='keyword'>do</span>
+<a name="line-369"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-370"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Self</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-371"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"abbrStep"</span>
+<a name="line-372"></a>
+<a name="line-373"></a><span class='comment'>-- [13] AbbreviatedAxisSpecifier: q.v. [5]</span>
+<a name="line-374"></a>
+<a name="line-375"></a>
+<a name="line-376"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-377"></a><span class='comment'>-- Expressions (3)</span>
+<a name="line-378"></a>
+<a name="line-379"></a>
+<a name="line-380"></a><a name="expr"></a><span class='comment'>-- Basics (3.1)</span>
+<a name="line-381"></a><span class='comment'>--</span>
+<a name="line-382"></a><span class='comment'>-- [14] Expr</span>
+<a name="line-383"></a><span class='definition'>expr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-384"></a><span class='definition'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>orExpr</span>
+<a name="line-385"></a>
+<a name="line-386"></a>
+<a name="line-387"></a><a name="primaryExpr"></a><span class='comment'>-- [15] PrimaryExpr</span>
+<a name="line-388"></a><span class='definition'>primaryExpr</span> <span class='keyglyph'>::</span>  <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-389"></a><span class='definition'>primaryExpr</span>
+<a name="line-390"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-391"></a>      <span class='varid'>vr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>variableReference</span>
+<a name="line-392"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>vr</span><span class='layout'>)</span>
+<a name="line-393"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-394"></a>      <span class='keyword'>do</span>
+<a name="line-395"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>expr</span>
+<a name="line-396"></a>      <span class='varid'>return</span> <span class='varid'>ex</span>
+<a name="line-397"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-398"></a>      <span class='keyword'>do</span>
+<a name="line-399"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>literal</span>
+<a name="line-400"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>li</span><span class='layout'>)</span>
+<a name="line-401"></a>      <span class='varop'>&lt;|&gt;</span> 
+<a name="line-402"></a>      <span class='keyword'>do</span>
+<a name="line-403"></a>      <span class='varid'>num</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>number</span>
+<a name="line-404"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>num</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-405"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-406"></a>      <span class='keyword'>do</span>
+<a name="line-407"></a>      <span class='varid'>fc</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>functionCall</span>
+<a name="line-408"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>fc</span><span class='layout'>)</span>
+<a name="line-409"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"primaryExpr"</span>
+<a name="line-410"></a>
+<a name="line-411"></a>
+<a name="line-412"></a><a name="functionCall"></a><span class='comment'>-- Function Calls (3.2)</span>
+<a name="line-413"></a><span class='comment'>--</span>
+<a name="line-414"></a><span class='comment'>-- [16] FunctionCall</span>
+<a name="line-415"></a><span class='comment'>-- [17] Argument</span>
+<a name="line-416"></a><span class='definition'>functionCall</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-417"></a><span class='definition'>functionCall</span>
+<a name="line-418"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-419"></a>      <span class='varid'>fn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>functionName</span>
+<a name="line-420"></a>      <span class='varid'>arg</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span> <span class='varid'>sepBy</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='varid'>separator</span> <span class='chr'>','</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-421"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>fn</span> <span class='varid'>arg</span><span class='layout'>)</span>
+<a name="line-422"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"functionCall"</span>
+<a name="line-423"></a>
+<a name="line-424"></a>
+<a name="line-425"></a><a name="unionExpr"></a><span class='comment'>-- Node-sets (3.3)</span>
+<a name="line-426"></a><span class='comment'>--</span>
+<a name="line-427"></a><span class='comment'>-- [18] UnionExpr</span>
+<a name="line-428"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-429"></a><span class='definition'>unionExpr</span>
+<a name="line-430"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-431"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pathExpr</span>
+<a name="line-432"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>unionOp</span> <span class='varid'>pathExpr</span><span class='layout'>)</span>
+<a name="line-433"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-434"></a>
+<a name="line-435"></a>
+<a name="line-436"></a><a name="pathExpr"></a><span class='comment'>-- [19] PathExpr</span>
+<a name="line-437"></a><span class='definition'>pathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-438"></a><span class='definition'>pathExpr</span>
+<a name="line-439"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-440"></a>      <span class='varid'>fe</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>filterExpr</span>
+<a name="line-441"></a>      <span class='varid'>path</span> <span class='keyglyph'>&lt;-</span> <span class='keyword'>do</span>
+<a name="line-442"></a>              <span class='varid'>dslash</span>
+<a name="line-443"></a>              <span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='varid'>t2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath'</span>
+<a name="line-444"></a>              <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>t2</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-445"></a>              <span class='varop'>&lt;|&gt;</span>
+<a name="line-446"></a>              <span class='keyword'>do</span>
+<a name="line-447"></a>              <span class='varid'>slash</span>
+<a name="line-448"></a>              <span class='varid'>relPath</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath'</span>
+<a name="line-449"></a>              <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>relPath</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-450"></a>              <span class='varop'>&lt;|&gt;</span>
+<a name="line-451"></a>              <span class='varid'>return</span> <span class='varid'>fe</span>
+<a name="line-452"></a>      <span class='varid'>return</span> <span class='varid'>path</span>
+<a name="line-453"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-454"></a>      <span class='keyword'>do</span>
+<a name="line-455"></a>      <span class='varid'>lp</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>locPath</span>
+<a name="line-456"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-457"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"pathExpr"</span>
+<a name="line-458"></a>
+<a name="line-459"></a>
+<a name="line-460"></a><a name="filterExpr"></a><span class='comment'>-- [20] FilterExpr</span>
+<a name="line-461"></a><span class='definition'>filterExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-462"></a><span class='definition'>filterExpr</span>
+<a name="line-463"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-464"></a>      <span class='varid'>prim</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>primaryExpr</span>
+<a name="line-465"></a>      <span class='varid'>predicates</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>
+<a name="line-466"></a>      <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>predicates</span> <span class='varop'>&gt;</span> <span class='num'>0</span>
+<a name="line-467"></a>        <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>prim</span> <span class='conop'>:</span> <span class='varid'>predicates</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-468"></a>        <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>prim</span>
+<a name="line-469"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"filterExpr"</span>
+<a name="line-470"></a>
+<a name="line-471"></a>
+<a name="line-472"></a><a name="orExpr"></a><span class='comment'>-- Booleans (3.4)</span>
+<a name="line-473"></a><span class='comment'>--</span>
+<a name="line-474"></a><span class='comment'>-- [21] OrExpr</span>
+<a name="line-475"></a><span class='definition'>orExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-476"></a><span class='definition'>orExpr</span>
+<a name="line-477"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-478"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>andExpr</span>
+<a name="line-479"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>orOp</span> <span class='varid'>andExpr</span><span class='layout'>)</span>
+<a name="line-480"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-481"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"orExpr"</span>
+<a name="line-482"></a>
+<a name="line-483"></a>
+<a name="line-484"></a><a name="andExpr"></a><span class='comment'>-- [22] AndExpr</span>
+<a name="line-485"></a><span class='definition'>andExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-486"></a><span class='definition'>andExpr</span>
+<a name="line-487"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-488"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>equalityExpr</span>
+<a name="line-489"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>andOp</span> <span class='varid'>equalityExpr</span><span class='layout'>)</span>
+<a name="line-490"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-491"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"andExpr"</span>
+<a name="line-492"></a>
+<a name="line-493"></a>
+<a name="line-494"></a><a name="equalityExpr"></a><span class='comment'>-- [23] EqualityExpr</span>
+<a name="line-495"></a><span class='definition'>equalityExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-496"></a><span class='definition'>equalityExpr</span>
+<a name="line-497"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-498"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relationalExpr</span>
+<a name="line-499"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>eqOp</span> <span class='varid'>relationalExpr</span><span class='layout'>)</span>
+<a name="line-500"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-501"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"equalityExpr"</span>
+<a name="line-502"></a>
+<a name="line-503"></a>
+<a name="line-504"></a><a name="relationalExpr"></a><span class='comment'>-- [24] RelationalExpr</span>
+<a name="line-505"></a><span class='definition'>relationalExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-506"></a><span class='definition'>relationalExpr</span>
+<a name="line-507"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-508"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>additiveExpr</span>
+<a name="line-509"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>relOp</span> <span class='varid'>additiveExpr</span><span class='layout'>)</span>
+<a name="line-510"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-511"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"relationalExpr"</span>
+<a name="line-512"></a>
+<a name="line-513"></a>
+<a name="line-514"></a><a name="additiveExpr"></a><span class='comment'>-- Numbers (3.5)</span>
+<a name="line-515"></a><span class='comment'>--</span>
+<a name="line-516"></a><span class='comment'>-- [25] AdditiveExpr</span>
+<a name="line-517"></a><span class='definition'>additiveExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-518"></a><span class='definition'>additiveExpr</span>
+<a name="line-519"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-520"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>multiplicativeExpr</span>
+<a name="line-521"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>addOp</span> <span class='varid'>multiplicativeExpr</span><span class='layout'>)</span>
+<a name="line-522"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-523"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"additiveExpr"</span>
+<a name="line-524"></a>
+<a name="line-525"></a>
+<a name="line-526"></a><a name="multiplicativeExpr"></a><span class='comment'>-- [26] MultiplicativeExpr</span>
+<a name="line-527"></a><span class='definition'>multiplicativeExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-528"></a><span class='definition'>multiplicativeExpr</span>
+<a name="line-529"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-530"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unaryExpr</span>
+<a name="line-531"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>multiOp</span> <span class='varid'>unaryExpr</span><span class='layout'>)</span>
+<a name="line-532"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>
+<a name="line-533"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"multiplicativeExpr"</span>
+<a name="line-534"></a>
+<a name="line-535"></a>
+<a name="line-536"></a><a name="unaryExpr"></a><span class='comment'>-- [27] UnaryExpr</span>
+<a name="line-537"></a><span class='definition'>unaryExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>
+<a name="line-538"></a><span class='definition'>unaryExpr</span>
+<a name="line-539"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-540"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"-"</span><span class='layout'>)</span>
+<a name="line-541"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unaryExpr</span>
+<a name="line-542"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Unary</span> <span class='keyglyph'>[</span><span class='varid'>u</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-543"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-544"></a>      <span class='keyword'>do</span>
+<a name="line-545"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unionExpr</span>
+<a name="line-546"></a>      <span class='varid'>return</span> <span class='varid'>u</span>
+<a name="line-547"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"unaryExpr"</span>
+<a name="line-548"></a>
+<a name="line-549"></a>
+<a name="line-550"></a><a name="literal"></a><span class='comment'>-- Lexical Structure (3.7)</span>
+<a name="line-551"></a><span class='comment'>--</span>
+<a name="line-552"></a><span class='comment'>-- [29] Literal</span>
+<a name="line-553"></a><span class='comment'>-- systemLiteral from XmlParser is used</span>
+<a name="line-554"></a><span class='definition'>literal</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
+<a name="line-555"></a><span class='definition'>literal</span> <span class='keyglyph'>=</span> <span class='varid'>systemLiteral</span>
+<a name="line-556"></a>
+<a name="line-557"></a>
+<a name="line-558"></a><a name="number"></a><span class='comment'>-- [30] Number</span>
+<a name="line-559"></a><span class='definition'>number</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
+<a name="line-560"></a><span class='definition'>number</span>
+<a name="line-561"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-562"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-563"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-564"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"0."</span> <span class='varop'>++</span> <span class='varid'>d</span><span class='layout'>)</span>
+<a name="line-565"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-566"></a>      <span class='keyword'>do</span>
+<a name="line-567"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-568"></a>      <span class='varid'>d1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-569"></a>                        <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-570"></a>                        <span class='varid'>d2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>"0"</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='varid'>digit</span><span class='layout'>)</span>
+<a name="line-571"></a>                        <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>d2</span><span class='layout'>)</span>
+<a name="line-572"></a>                      <span class='layout'>)</span>
+<a name="line-573"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>d</span> <span class='varop'>++</span> <span class='varid'>d1</span><span class='layout'>)</span>
+<a name="line-574"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"number"</span>
+<a name="line-575"></a>
+<a name="line-576"></a>
+<a name="line-577"></a><span class='comment'>-- [35] FunctionName</span>
+<a name="line-578"></a><span class='comment'>-- no nodetype name is allowed as a function name</span>
+<a name="line-579"></a><span class='comment'>-- Tim Walkenhorst:</span>
+<a name="line-580"></a><span class='comment'>--   Change in String encoding for function name</span>
+<a name="line-581"></a><span class='comment'>--</span>
+<a name="line-582"></a><span class='comment'>--         previoulsy:      new:</span>
+<a name="line-583"></a><span class='comment'>--           </span>
+<a name="line-584"></a><span class='comment'>--         name             name</span>
+<a name="line-585"></a><span class='comment'>--         pref:name        {<a href="http://uri-for-pref">http://uri-for-pref</a>}name</span>
+<a name="line-586"></a>
+<a name="line-587"></a><a name="functionName"></a><span class='definition'>functionName</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>
+<a name="line-588"></a><span class='definition'>functionName</span>
+<a name="line-589"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>           
+<a name="line-590"></a>            <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>qName</span>
+<a name="line-591"></a>            <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-592"></a>            <span class='varid'>u</span>      <span class='keyglyph'>&lt;-</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>p</span>
+<a name="line-593"></a>	                       <span class='keyword'>then</span> <span class='str'>""</span>
+<a name="line-594"></a>                               <span class='keyword'>else</span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>p</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"}"</span>
+<a name="line-595"></a>            <span class='keyword'>let</span> <span class='varid'>fn</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>u</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyword'>in</span>
+<a name="line-596"></a>              <span class='keyword'>if</span> <span class='varid'>fn</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"processing-instruction"</span><span class='layout'>,</span> <span class='str'>"comment"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"node"</span><span class='keyglyph'>]</span>
+<a name="line-597"></a>                <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='layout'>(</span><span class='str'>"function name: "</span> <span class='varop'>++</span> <span class='varid'>fn</span> <span class='varop'>++</span> <span class='str'>"not allowed"</span><span class='layout'>)</span>
+<a name="line-598"></a>                <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>fn</span>
+<a name="line-599"></a>          <span class='layout'>)</span>
+<a name="line-600"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"functionName"</span>
+<a name="line-601"></a>
+<a name="line-602"></a>
+<a name="line-603"></a><a name="variableReference"></a><span class='comment'>-- [36] VariableReference</span>
+<a name="line-604"></a><span class='definition'>variableReference</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-605"></a><span class='definition'>variableReference</span>
+<a name="line-606"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-607"></a>      <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"$"</span><span class='layout'>)</span>
+<a name="line-608"></a>      <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span><span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>qName</span>
+<a name="line-609"></a>      <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-610"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>p</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-611"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"variableReference"</span>
+<a name="line-612"></a>
+<a name="line-613"></a>
+<a name="line-614"></a><a name="nameTest"></a><span class='comment'>-- [37] NameTest</span>
+<a name="line-615"></a><span class='definition'>nameTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>QName</span>
+<a name="line-616"></a><span class='definition'>nameTest</span> <span class='keyword'>as</span>
+<a name="line-617"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"*"</span><span class='layout'>)</span>
+<a name="line-618"></a>	 <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-619"></a>	 <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkPrefixLocalPart</span> <span class='str'>""</span> <span class='str'>"*"</span><span class='layout'>)</span>
+<a name="line-620"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-621"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='varid'>pre</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ncName</span>
+<a name="line-622"></a>               <span class='varid'>symbol</span> <span class='str'>":*"</span>
+<a name="line-623"></a>               <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-624"></a>               <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>pre</span> <span class='str'>"*"</span><span class='layout'>)</span>
+<a name="line-625"></a>	  <span class='layout'>)</span>
+<a name="line-626"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-627"></a>      <span class='keyword'>do</span> <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span><span class='varid'>local</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>qName</span>
+<a name="line-628"></a>	 <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-629"></a>	 <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>pre</span> <span class='varid'>local</span><span class='layout'>)</span>
+<a name="line-630"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nameTest"</span>
+<a name="line-631"></a>
+<a name="line-632"></a>	
+<a name="line-633"></a><a name="nodeType'"></a><span class='comment'>-- [38] NodeType</span>
+<a name="line-634"></a><span class='definition'>nodeType'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>
+<a name="line-635"></a><span class='definition'>nodeType'</span> 
+<a name="line-636"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-637"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeType</span>
+<a name="line-638"></a>      <span class='varid'>lpar</span>
+<a name="line-639"></a>      <span class='varid'>rpar</span>
+<a name="line-640"></a>      <span class='varid'>return</span> <span class='varid'>nt</span>
+<a name="line-641"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeType'"</span>
+<a name="line-642"></a>	
+<a name="line-643"></a><a name="nodeType"></a><span class='definition'>nodeType</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>
+<a name="line-644"></a><span class='definition'>nodeType</span> 
+<a name="line-645"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_comment</span><span class='layout'>,</span> <span class='conid'>XPCommentNode</span><span class='layout'>)</span>
+<a name="line-646"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_text</span><span class='layout'>,</span> <span class='conid'>XPTextNode</span><span class='layout'>)</span>
+<a name="line-647"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_processing_instruction</span><span class='layout'>,</span> <span class='conid'>XPPINode</span><span class='layout'>)</span>
+<a name="line-648"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_node</span><span class='layout'>,</span> <span class='conid'>XPNode</span><span class='layout'>)</span>
+<a name="line-649"></a>             <span class='keyglyph'>]</span>
+<a name="line-650"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeType"</span>
+<a name="line-651"></a>
+<a name="line-652"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XSLT-Common.html b/doc/hdoc/src/Text-XML-HXT-XSLT-Common.html
--- a/doc/hdoc/src/Text-XML-HXT-XSLT-Common.html
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-Common.html
@@ -10,404 +10,407 @@
 <a name="line-2"></a>
 <a name="line-3"></a><span class='comment'>{- |
 <a name="line-4"></a>   Module     : Text.XML.HXT.XSLT.Application
-<a name="line-5"></a>   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006-2008 Tim Walkenhorst, Uwe Schmidt
 <a name="line-6"></a>   License    : MIT
 <a name="line-7"></a>
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
 <a name="line-9"></a>   Stability  : experimental
 <a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: Common.hs,v 1.5 2007/05/02 06:41:05 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>   Common imports and functions for HXSLT
-<a name="line-14"></a>
-<a name="line-15"></a>-}</span>
-<a name="line-16"></a>
-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>
-<a name="line-20"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
-<a name="line-21"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
-<a name="line-22"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
-<a name="line-23"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-24"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>
-<a name="line-25"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
-<a name="line-26"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
-<a name="line-27"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>
-<a name="line-28"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>
-<a name="line-29"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>
-<a name="line-30"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>
-<a name="line-31"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span>
-<a name="line-32"></a>
-<a name="line-33"></a>    <span class='comment'>-- Tree Functions</span>
-<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>filterTree</span>                 <span class='comment'>-- Tree t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</span>
-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>mapTreeCtx</span>                 <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</span>
-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>filterTreeCtx</span>              <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</span>
-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>zipTreeWith</span>                <span class='comment'>-- Tree t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</span>
-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>zipTree</span>                    <span class='comment'>-- Tree t =&gt; t a -&gt; t b -&gt; t (a,b)           (zipTreeWith (,))</span>
-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>unzipTree</span>                  <span class='comment'>-- Tree t =&gt; t (a,b) -&gt; (t a, t b)           (mapTree fst &amp;&amp;&amp; mapTree snd)</span>
-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>showTrees</span>
-<a name="line-41"></a>
-<a name="line-42"></a>    <span class='comment'>-- XML functions</span>
-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isElemType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>
-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isAttrType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>
-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>isWhitespaceNode</span>           <span class='comment'>-- XmlTree -&gt; Bool</span>
-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>collectTextnodes</span>           <span class='comment'>-- [XmlTree] -&gt; String</span>
-<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>tryFetchAttribute</span>          <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Maybe String</span>
-<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttributeWDefault</span>     <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String -&gt; String</span>
-<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttribute</span>             <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String</span>
-<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>hasAttribute</span>               <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Bool</span>
-<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>setAttribute</span>               <span class='comment'>-- XmlNode n =&gt; QName -&gt; String -&gt; n -&gt; n</span>
-<a name="line-52"></a>
-<a name="line-53"></a>    <span class='comment'>-- Namespace functions</span>
-<a name="line-54"></a>    <span class='layout'>,</span> <span class='conid'>ExName</span><span class='layout'>(</span><span class='conid'>ExName</span><span class='layout'>)</span>             <span class='comment'>-- String (local) -&gt; String (uri) -&gt; ExName</span>
-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>mkExName</span>                   <span class='comment'>-- QName -&gt; ExName</span>
-<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>exLocal</span>		         <span class='comment'>-- ExName -&gt; String</span>
-<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>exUri</span>		         <span class='comment'>-- ExName -&gt; String</span>
-<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>parseExName</span>                <span class='comment'>-- UriMapping -&gt; String -&gt; ExName</span>
-<a name="line-59"></a>    <span class='layout'>,</span> <span class='conid'>UriMapping</span>                 <span class='comment'>-- Map String String</span>
-<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>getUriMap</span>                  <span class='comment'>-- XmlNode n =&gt; n -&gt; UriMapping (extract an Ns-Uri Map from an Element node)</span>
-<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>setUriMap</span>                  <span class='comment'>-- XmlNode n =&gt; UriMap -&gt; n -&gt; n</span>
-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>uriMap2Attrs</span>               <span class='comment'>-- UriMapping -&gt; [XmlTree]      (create xmlns:* Attribute nodes for Uri-Mapping)</span>
-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>expandNSDecls</span>              <span class='comment'>-- XmlTree -&gt; XmlTree</span>
-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>lookupPrefix</span>               <span class='comment'>-- UriMapping -&gt; String -&gt; String</span>
-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>isNsAttr</span>                   <span class='comment'>-- XmlTree -&gt; Bool</span>
-<a name="line-66"></a>
-<a name="line-67"></a>    <span class='comment'>-- additions to XPATH:</span>
-<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>mkLiteralExpr</span>              <span class='comment'>-- String -&gt; Expr</span>
-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>mkStringExpr</span>               <span class='comment'>-- Expr -&gt; Expr</span>
-<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>mkBoolExpr</span>                 <span class='comment'>-- Expr -&gt; Expr</span>
-<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>mkTrueExpr</span>                 <span class='comment'>-- Expr</span>
-<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>concatExpr</span>                 <span class='comment'>-- [Expr] -&gt; Expr</span>
-<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>splitExpr</span>                  <span class='comment'>-- Expr -&gt; [Expr]</span>
-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>unionExpr</span>                  <span class='comment'>-- [Expr] -&gt; Expr</span>
-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>splitMatchByPrio</span>           <span class='comment'>-- Expr -&gt; [(Float, Expr)]</span>
-<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>computePriority</span>            <span class='comment'>-- Expr -&gt; Float</span>
-<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>computeNTestPriority</span>       <span class='comment'>-- NodeTest -&gt; Float</span>
-<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>isMatchExpr</span>                <span class='comment'>-- Expr -&gt; Bool</span>
-<a name="line-79"></a>
-<a name="line-80"></a>    <span class='comment'>-- Misc.:</span>
-<a name="line-81"></a>    <span class='layout'>,</span> <span class='varid'>fromJustErr</span>                <span class='comment'>-- String -&gt; Maybe a -&gt; a, fromJust with error message</span>
-<a name="line-82"></a>    <span class='layout'>,</span> <span class='varid'>readWDefault</span>               <span class='comment'>-- Read a =&gt; a -&gt; String -&gt; a</span>
-<a name="line-83"></a>    <span class='layout'>)</span>
-<a name="line-84"></a><span class='keyword'>where</span>
-<a name="line-85"></a>
-<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
-<a name="line-87"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
-<a name="line-88"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
-<a name="line-89"></a>
-<a name="line-90"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
-<a name="line-91"></a>    <span class='layout'>(</span> <span class='varid'>xshow</span>
-<a name="line-92"></a>    <span class='layout'>)</span>
-<a name="line-93"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
-<a name="line-94"></a>    <span class='layout'>(</span> <span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
-<a name="line-95"></a>    <span class='layout'>,</span> <span class='varid'>mkElement</span>
-<a name="line-96"></a>    <span class='layout'>,</span> <span class='varid'>mkRoot</span>
-<a name="line-97"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>
-<a name="line-98"></a>    <span class='layout'>,</span> <span class='varid'>mergeAttrl</span>
-<a name="line-99"></a>    <span class='layout'>)</span>
-<a name="line-100"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
-<a name="line-101"></a>
-<a name="line-102"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
-<a name="line-103"></a>    <span class='layout'>(</span> <span class='conid'>XmlTree</span>
-<a name="line-104"></a>    <span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>(</span><span class='conid'>XTag</span><span class='layout'>,</span> <span class='conid'>XAttr</span><span class='layout'>)</span>
-<a name="line-105"></a>    <span class='layout'>,</span> <span class='conid'>QName</span><span class='layout'>(</span><span class='varid'>namePrefix</span><span class='layout'>,</span> <span class='varid'>localPart</span><span class='layout'>,</span> <span class='varid'>namespaceUri</span><span class='layout'>)</span>
-<a name="line-106"></a>    <span class='layout'>,</span> <span class='varid'>equivQName</span>
-<a name="line-107"></a>    <span class='layout'>,</span> <span class='varid'>mkName</span>
-<a name="line-108"></a>    <span class='layout'>,</span> <span class='varid'>mkQName</span>
-<a name="line-109"></a>    <span class='layout'>)</span>
-<a name="line-110"></a>
-<a name="line-111"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>
-<a name="line-112"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>
-<a name="line-113"></a>
-<a name="line-114"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
-<a name="line-115"></a>    <span class='layout'>(</span> <span class='conid'>Expr</span><span class='layout'>(</span><span class='conid'>LiteralExpr</span><span class='layout'>,</span> <span class='conid'>FctExpr</span><span class='layout'>,</span> <span class='conid'>GenExpr</span><span class='layout'>,</span> <span class='conid'>PathExpr</span><span class='layout'>)</span>
-<a name="line-116"></a>    <span class='layout'>,</span> <span class='conid'>Op</span><span class='layout'>(</span><span class='conid'>Union</span><span class='layout'>)</span>
-<a name="line-117"></a>    <span class='layout'>,</span> <span class='conid'>LocationPath</span> <span class='layout'>(</span><span class='conid'>LocPath</span><span class='layout'>)</span>
-<a name="line-118"></a>    <span class='layout'>,</span> <span class='conid'>Path</span> <span class='layout'>(</span><span class='conid'>Rel</span><span class='layout'>)</span>
-<a name="line-119"></a>    <span class='layout'>,</span> <span class='conid'>XStep</span> <span class='layout'>(</span><span class='conid'>Step</span><span class='layout'>)</span>
-<a name="line-120"></a>    <span class='layout'>,</span> <span class='conid'>NodeTest</span> <span class='layout'>(</span><span class='conid'>NameTest</span><span class='layout'>,</span> <span class='conid'>PI</span><span class='layout'>,</span> <span class='conid'>TypeTest</span><span class='layout'>)</span>
-<a name="line-121"></a>    <span class='layout'>,</span> <span class='conid'>NavXmlTree</span>
-<a name="line-122"></a>    <span class='layout'>,</span> <span class='conid'>XPathValue</span><span class='layout'>(</span><span class='conid'>XPVNode</span><span class='layout'>,</span> <span class='conid'>XPVBool</span><span class='layout'>,</span> <span class='conid'>XPVString</span><span class='layout'>,</span> <span class='conid'>XPVError</span><span class='layout'>)</span>
-<a name="line-123"></a>    <span class='layout'>)</span>
-<a name="line-124"></a>
-<a name="line-125"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
-<a name="line-126"></a>    <span class='layout'>(</span> <span class='varid'>parseXPath</span> <span class='layout'>)</span>
-<a name="line-127"></a>
-<a name="line-128"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>
-<a name="line-129"></a>    <span class='layout'>(</span> <span class='varid'>evalExpr</span> <span class='layout'>)</span>
-<a name="line-130"></a>
-<a name="line-131"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>
-<a name="line-132"></a>    <span class='layout'>(</span> <span class='varid'>isNotInNodeList</span> <span class='layout'>)</span>
-<a name="line-133"></a>
-<a name="line-134"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>
-<a name="line-135"></a>    <span class='layout'>(</span> <span class='varid'>xPValue2XmlTrees</span> <span class='layout'>)</span>
-<a name="line-136"></a>
-<a name="line-137"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
-<a name="line-138"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
-<a name="line-139"></a>
-<a name="line-140"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> 
+<a name="line-11"></a>
+<a name="line-12"></a>   Common imports and functions for HXSLT
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span>
+<a name="line-31"></a>
+<a name="line-32"></a>    <span class='comment'>-- Tree Functions</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>filterTree</span>                 <span class='comment'>-- Tree t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>mapTreeCtx</span>                 <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>filterTreeCtx</span>              <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>zipTreeWith</span>                <span class='comment'>-- Tree t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>zipTree</span>                    <span class='comment'>-- Tree t =&gt; t a -&gt; t b -&gt; t (a,b)           (zipTreeWith (,))</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>unzipTree</span>                  <span class='comment'>-- Tree t =&gt; t (a,b) -&gt; (t a, t b)           (mapTree fst &amp;&amp;&amp; mapTree snd)</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>showTrees</span>
+<a name="line-40"></a>
+<a name="line-41"></a>    <span class='comment'>-- XML functions</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>isElemType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isAttrType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isWhitespaceNode</span>           <span class='comment'>-- XmlTree -&gt; Bool</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>collectTextnodes</span>           <span class='comment'>-- [XmlTree] -&gt; String</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>tryFetchAttribute</span>          <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Maybe String</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttributeWDefault</span>     <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String -&gt; String</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttribute</span>             <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>hasAttribute</span>               <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Bool</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>setAttribute</span>               <span class='comment'>-- XmlNode n =&gt; QName -&gt; String -&gt; n -&gt; n</span>
+<a name="line-51"></a>
+<a name="line-52"></a>    <span class='comment'>-- Namespace functions</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='conid'>ExName</span><span class='layout'>(</span><span class='conid'>ExName</span><span class='layout'>)</span>             <span class='comment'>-- String (local) -&gt; String (uri) -&gt; ExName</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>mkExName</span>                   <span class='comment'>-- QName -&gt; ExName</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>exLocal</span>		         <span class='comment'>-- ExName -&gt; String</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>exUri</span>		         <span class='comment'>-- ExName -&gt; String</span>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>parseExName</span>                <span class='comment'>-- UriMapping -&gt; String -&gt; ExName</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='conid'>UriMapping</span>                 <span class='comment'>-- Map String String</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>getUriMap</span>                  <span class='comment'>-- XmlNode n =&gt; n -&gt; UriMapping (extract an Ns-Uri Map from an Element node)</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>setUriMap</span>                  <span class='comment'>-- XmlNode n =&gt; UriMap -&gt; n -&gt; n</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>uriMap2Attrs</span>               <span class='comment'>-- UriMapping -&gt; [XmlTree]      (create xmlns:* Attribute nodes for Uri-Mapping)</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>expandNSDecls</span>              <span class='comment'>-- XmlTree -&gt; XmlTree</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>lookupPrefix</span>               <span class='comment'>-- UriMapping -&gt; String -&gt; String</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>isNsAttr</span>                   <span class='comment'>-- XmlTree -&gt; Bool</span>
+<a name="line-65"></a>
+<a name="line-66"></a>    <span class='comment'>-- additions to XPATH:</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>mkLiteralExpr</span>              <span class='comment'>-- String -&gt; Expr</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>mkStringExpr</span>               <span class='comment'>-- Expr -&gt; Expr</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>mkBoolExpr</span>                 <span class='comment'>-- Expr -&gt; Expr</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>mkTrueExpr</span>                 <span class='comment'>-- Expr</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>concatExpr</span>                 <span class='comment'>-- [Expr] -&gt; Expr</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>splitExpr</span>                  <span class='comment'>-- Expr -&gt; [Expr]</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>unionExpr</span>                  <span class='comment'>-- [Expr] -&gt; Expr</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>splitMatchByPrio</span>           <span class='comment'>-- Expr -&gt; [(Float, Expr)]</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>computePriority</span>            <span class='comment'>-- Expr -&gt; Float</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>computeNTestPriority</span>       <span class='comment'>-- NodeTest -&gt; Float</span>
+<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>isMatchExpr</span>                <span class='comment'>-- Expr -&gt; Bool</span>
+<a name="line-78"></a>
+<a name="line-79"></a>    <span class='comment'>-- Misc.:</span>
+<a name="line-80"></a>    <span class='layout'>,</span> <span class='varid'>fromJustErr</span>                <span class='comment'>-- String -&gt; Maybe a -&gt; a, fromJust with error message</span>
+<a name="line-81"></a>    <span class='layout'>,</span> <span class='varid'>readWDefault</span>               <span class='comment'>-- Read a =&gt; a -&gt; String -&gt; a</span>
+<a name="line-82"></a>    <span class='layout'>)</span>
+<a name="line-83"></a><span class='keyword'>where</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
+<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
+<a name="line-87"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>	<span class='layout'>(</span> <span class='varid'>xshow</span>
+<a name="line-90"></a>					<span class='layout'>)</span>
+<a name="line-91"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
+<a name="line-92"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>		<span class='layout'>(</span> <span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-93"></a>					<span class='layout'>,</span> <span class='varid'>mkElement</span>
+<a name="line-94"></a>					<span class='layout'>,</span> <span class='varid'>mkRoot</span>
+<a name="line-95"></a>					<span class='layout'>,</span> <span class='varid'>mkAttr</span>
+<a name="line-96"></a>					<span class='layout'>,</span> <span class='varid'>mergeAttrl</span>
+<a name="line-97"></a>					<span class='layout'>)</span>
+<a name="line-98"></a>
+<a name="line-99"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>	<span class='layout'>(</span> <span class='conid'>XmlTree</span>
+<a name="line-100"></a>					<span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>(</span><span class='conid'>XTag</span><span class='layout'>,</span> <span class='conid'>XAttr</span><span class='layout'>)</span>
+<a name="line-101"></a>					<span class='layout'>,</span> <span class='conid'>QName</span>
+<a name="line-102"></a>					<span class='layout'>,</span> <span class='varid'>toNsEnv</span>
+<a name="line-103"></a>					<span class='layout'>,</span> <span class='varid'>namePrefix</span>
+<a name="line-104"></a>					<span class='layout'>,</span> <span class='varid'>localPart</span>
+<a name="line-105"></a>					<span class='layout'>,</span> <span class='varid'>namespaceUri</span>
+<a name="line-106"></a>					<span class='layout'>,</span> <span class='varid'>equivQName</span>
+<a name="line-107"></a>					<span class='layout'>,</span> <span class='varid'>mkName</span>
+<a name="line-108"></a>					<span class='layout'>,</span> <span class='varid'>mkQName</span>
+<a name="line-109"></a>					<span class='layout'>)</span>
+<a name="line-110"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>	<span class='layout'>(</span> <span class='varid'>formatXmlTree</span>
+<a name="line-111"></a>					<span class='layout'>)</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span><span class='layout'>(</span> <span class='conid'>Expr</span>		<span class='layout'>(</span> <span class='conid'>LiteralExpr</span>
+<a name="line-114"></a>							<span class='layout'>,</span> <span class='conid'>FctExpr</span>
+<a name="line-115"></a>							<span class='layout'>,</span> <span class='conid'>GenExpr</span>
+<a name="line-116"></a>							<span class='layout'>,</span> <span class='conid'>PathExpr</span>
+<a name="line-117"></a>							<span class='layout'>)</span>
+<a name="line-118"></a>					<span class='layout'>,</span> <span class='conid'>Op</span>		<span class='layout'>(</span> <span class='conid'>Union</span> <span class='layout'>)</span>
+<a name="line-119"></a>					<span class='layout'>,</span> <span class='conid'>LocationPath</span>	<span class='layout'>(</span> <span class='conid'>LocPath</span> <span class='layout'>)</span>
+<a name="line-120"></a>					<span class='layout'>,</span> <span class='conid'>Path</span>		<span class='layout'>(</span> <span class='conid'>Rel</span> <span class='layout'>)</span>
+<a name="line-121"></a>					<span class='layout'>,</span> <span class='conid'>XStep</span> 	<span class='layout'>(</span> <span class='conid'>Step</span> <span class='layout'>)</span>
+<a name="line-122"></a>					<span class='layout'>,</span> <span class='conid'>NodeTest</span>	<span class='layout'>(</span> <span class='conid'>NameTest</span>
+<a name="line-123"></a>							<span class='layout'>,</span> <span class='conid'>PI</span>
+<a name="line-124"></a>							<span class='layout'>,</span> <span class='conid'>TypeTest</span>
+<a name="line-125"></a>							<span class='layout'>)</span>
+<a name="line-126"></a>					<span class='layout'>,</span> <span class='conid'>NavXmlTree</span>
+<a name="line-127"></a>					<span class='layout'>,</span> <span class='conid'>XPathValue</span>	<span class='layout'>(</span> <span class='conid'>XPVNode</span>
+<a name="line-128"></a>							<span class='layout'>,</span> <span class='conid'>XPVBool</span>
+<a name="line-129"></a>							<span class='layout'>,</span> <span class='conid'>XPVString</span>
+<a name="line-130"></a>							<span class='layout'>,</span> <span class='conid'>XPVError</span>
+<a name="line-131"></a>							<span class='layout'>)</span>
+<a name="line-132"></a>					<span class='layout'>)</span>
+<a name="line-133"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>	<span class='layout'>(</span> <span class='varid'>parseXPath</span>
+<a name="line-134"></a>					<span class='layout'>)</span>
+<a name="line-135"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>	<span class='layout'>(</span> <span class='varid'>evalExpr</span>
+<a name="line-136"></a>					<span class='layout'>)</span>
+<a name="line-137"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>	<span class='layout'>(</span> <span class='varid'>isNotInNodeList</span>
+<a name="line-138"></a>					<span class='layout'>)</span>
+<a name="line-139"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span> <span class='layout'>(</span> <span class='varid'>xPValue2XmlTrees</span>
+<a name="line-140"></a>					<span class='layout'>)</span>
 <a name="line-141"></a>
-<a name="line-142"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>
-<a name="line-143"></a>    <span class='layout'>(</span> <span class='conid'>NavTree</span>
-<a name="line-144"></a>    <span class='layout'>,</span> <span class='varid'>ntree</span>
-<a name="line-145"></a>    <span class='layout'>,</span> <span class='varid'>subtreeNT</span>
-<a name="line-146"></a>    <span class='layout'>,</span> <span class='varid'>upNT</span>
-<a name="line-147"></a>    <span class='layout'>,</span> <span class='varid'>downNT</span>
-<a name="line-148"></a>    <span class='layout'>,</span> <span class='varid'>rightNT</span>
-<a name="line-149"></a>    <span class='layout'>,</span> <span class='varid'>leftNT</span>
-<a name="line-150"></a>    <span class='layout'>,</span> <span class='varid'>getChildrenNT</span>
-<a name="line-151"></a>    <span class='layout'>)</span>
-<a name="line-152"></a>
-<a name="line-153"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-154"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
-<a name="line-155"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
-<a name="line-156"></a>
-<a name="line-157"></a><span class='comment'>--------------------------- </span>
-<a name="line-158"></a><span class='comment'>-- Tree functions</span>
+<a name="line-142"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
+<a name="line-143"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> 
+<a name="line-146"></a>
+<a name="line-147"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>			<span class='layout'>(</span> <span class='conid'>NavTree</span>
+<a name="line-148"></a>					<span class='layout'>,</span> <span class='varid'>ntree</span>
+<a name="line-149"></a>					<span class='layout'>,</span> <span class='varid'>subtreeNT</span>
+<a name="line-150"></a>					<span class='layout'>,</span> <span class='varid'>upNT</span>
+<a name="line-151"></a>					<span class='layout'>,</span> <span class='varid'>downNT</span>
+<a name="line-152"></a>					<span class='layout'>,</span> <span class='varid'>rightNT</span>
+<a name="line-153"></a>					<span class='layout'>,</span> <span class='varid'>leftNT</span>
+<a name="line-154"></a>					<span class='layout'>,</span> <span class='varid'>getChildrenNT</span>
+<a name="line-155"></a>					<span class='layout'>)</span>
+<a name="line-156"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-157"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-158"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
 <a name="line-159"></a>
-<a name="line-160"></a><span class='comment'>-- mapTree :: Functor t =&gt; (a -&gt; b) -&gt; t a -&gt; t b</span>
-<a name="line-161"></a><span class='comment'>-- mapTree = fmap</span>
+<a name="line-160"></a><span class='comment'>--------------------------- </span>
+<a name="line-161"></a><span class='comment'>-- Tree functions</span>
 <a name="line-162"></a>
-<a name="line-163"></a><span class='comment'>-- "map" on a tree with a context. </span>
-<a name="line-164"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>
+<a name="line-163"></a><span class='comment'>-- mapTree :: Functor t =&gt; (a -&gt; b) -&gt; t a -&gt; t b</span>
+<a name="line-164"></a><span class='comment'>-- mapTree = fmap</span>
 <a name="line-165"></a>
-<a name="line-166"></a><a name="mapTreeCtx"></a><span class='definition'>mapTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span>
-<a name="line-167"></a><span class='definition'>mapTreeCtx</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> 
-<a name="line-168"></a>    <span class='varid'>mkTree</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mapTreeCtx</span> <span class='varid'>f</span> <span class='varid'>cN</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>
-<a name="line-169"></a>  <span class='keyword'>where</span> 
-<a name="line-170"></a>    <span class='layout'>(</span><span class='varid'>cN</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>
-<a name="line-171"></a>
-<a name="line-172"></a><a name="filterTree"></a><span class='definition'>filterTree</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-173"></a><span class='definition'>filterTree</span> <span class='varid'>p</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>node</span>
-<a name="line-174"></a>                      <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>mkTree</span> <span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>filterTree</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>
-<a name="line-175"></a>                      <span class='keyword'>else</span> <span class='conid'>Nothing</span>
-<a name="line-176"></a>                    <span class='keyword'>where</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>
-<a name="line-177"></a>
-<a name="line-178"></a><a name="filterTreeCtx"></a><span class='comment'>-- "filter" on a tree with a context. </span>
-<a name="line-179"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>
-<a name="line-180"></a><span class='definition'>filterTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>)</span>
-<a name="line-181"></a><span class='definition'>filterTreeCtx</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span>
-<a name="line-182"></a>  <span class='keyword'>if</span> <span class='varid'>b</span> 
-<a name="line-183"></a>    <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>mkTree</span> <span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>filterTreeCtx</span> <span class='varid'>p</span> <span class='varid'>cN</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>
-<a name="line-184"></a>    <span class='keyword'>else</span> <span class='conid'>Nothing</span>
-<a name="line-185"></a>  <span class='keyword'>where</span> 
-<a name="line-186"></a>    <span class='layout'>(</span><span class='varid'>cN</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='varid'>node</span>
-<a name="line-187"></a>    <span class='varid'>node</span>    <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>
-<a name="line-188"></a>
-<a name="line-189"></a><a name="zipTreeWith"></a><span class='definition'>zipTreeWith</span>   <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>c</span>
-<a name="line-190"></a><span class='definition'>zipTreeWith</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> 
-<a name="line-191"></a>                       <span class='varop'>$</span> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='varid'>zipTreeWith</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>b</span>
-<a name="line-192"></a>
-<a name="line-193"></a><a name="zipTree"></a><span class='definition'>zipTree</span>     <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span>
-<a name="line-194"></a><span class='definition'>zipTree</span>      <span class='keyglyph'>=</span> <span class='varid'>zipTreeWith</span> <span class='conid'>(,)</span>
+<a name="line-166"></a><span class='comment'>-- "map" on a tree with a context. </span>
+<a name="line-167"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="mapTreeCtx"></a><span class='definition'>mapTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span>
+<a name="line-170"></a><span class='definition'>mapTreeCtx</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> 
+<a name="line-171"></a>    <span class='varid'>mkTree</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mapTreeCtx</span> <span class='varid'>f</span> <span class='varid'>cN</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>
+<a name="line-172"></a>  <span class='keyword'>where</span> 
+<a name="line-173"></a>    <span class='layout'>(</span><span class='varid'>cN</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="filterTree"></a><span class='definition'>filterTree</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-176"></a><span class='definition'>filterTree</span> <span class='varid'>p</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>node</span>
+<a name="line-177"></a>                      <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>mkTree</span> <span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>filterTree</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>
+<a name="line-178"></a>                      <span class='keyword'>else</span> <span class='conid'>Nothing</span>
+<a name="line-179"></a>                    <span class='keyword'>where</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>
+<a name="line-180"></a>
+<a name="line-181"></a><a name="filterTreeCtx"></a><span class='comment'>-- "filter" on a tree with a context. </span>
+<a name="line-182"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>
+<a name="line-183"></a><span class='definition'>filterTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-184"></a><span class='definition'>filterTreeCtx</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span>
+<a name="line-185"></a>  <span class='keyword'>if</span> <span class='varid'>b</span> 
+<a name="line-186"></a>    <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>mkTree</span> <span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>filterTreeCtx</span> <span class='varid'>p</span> <span class='varid'>cN</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>
+<a name="line-187"></a>    <span class='keyword'>else</span> <span class='conid'>Nothing</span>
+<a name="line-188"></a>  <span class='keyword'>where</span> 
+<a name="line-189"></a>    <span class='layout'>(</span><span class='varid'>cN</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='varid'>node</span>
+<a name="line-190"></a>    <span class='varid'>node</span>    <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>
+<a name="line-191"></a>
+<a name="line-192"></a><a name="zipTreeWith"></a><span class='definition'>zipTreeWith</span>   <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>c</span>
+<a name="line-193"></a><span class='definition'>zipTreeWith</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-194"></a>                       <span class='varop'>$</span> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='varid'>zipTreeWith</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>b</span>
 <a name="line-195"></a>
-<a name="line-196"></a><a name="unzipTree"></a><span class='definition'>unzipTree</span>  <span class='keyglyph'>::</span> <span class='conid'>Functor</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>t</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
-<a name="line-197"></a><span class='definition'>unzipTree</span>   <span class='keyglyph'>=</span> <span class='varid'>fmap</span> <span class='varid'>fst</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>fmap</span> <span class='varid'>snd</span>
+<a name="line-196"></a><a name="zipTree"></a><span class='definition'>zipTree</span>     <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-197"></a><span class='definition'>zipTree</span>      <span class='keyglyph'>=</span> <span class='varid'>zipTreeWith</span> <span class='conid'>(,)</span>
 <a name="line-198"></a>
-<a name="line-199"></a><a name="showTrees"></a><span class='definition'>showTrees</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-200"></a><span class='definition'>showTrees</span> <span class='varid'>ts</span>
-<a name="line-201"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> 
-<a name="line-202"></a>      <span class='layout'>(</span><span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>constL</span> <span class='varid'>ts</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>undefined</span><span class='layout'>)</span>
-<a name="line-203"></a>
-<a name="line-204"></a><span class='comment'>--------------------------- </span>
-<a name="line-205"></a><span class='comment'>-- Xml Functions</span>
+<a name="line-199"></a><a name="unzipTree"></a><span class='definition'>unzipTree</span>  <span class='keyglyph'>::</span> <span class='conid'>Functor</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>t</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-200"></a><span class='definition'>unzipTree</span>   <span class='keyglyph'>=</span> <span class='varid'>fmap</span> <span class='varid'>fst</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>fmap</span> <span class='varid'>snd</span>
+<a name="line-201"></a>
+<a name="line-202"></a><a name="showTrees"></a><span class='definition'>showTrees</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-203"></a><span class='definition'>showTrees</span> <span class='varid'>ts</span>
+<a name="line-204"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> 
+<a name="line-205"></a>      <span class='layout'>(</span><span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>constL</span> <span class='varid'>ts</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>undefined</span><span class='layout'>)</span>
 <a name="line-206"></a>
-<a name="line-207"></a><a name="collectTextnodes"></a><span class='definition'>collectTextnodes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-208"></a><span class='definition'>collectTextnodes</span>
-<a name="line-209"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>mapMaybe</span> <span class='varid'>getText</span>
-<a name="line-210"></a>
-<a name="line-211"></a><a name="isElemType"></a><span class='definition'>isElemType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-212"></a><span class='definition'>isElemType</span> <span class='varid'>qn</span> <span class='varid'>node</span>
-<a name="line-213"></a>    <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varid'>node</span>
-<a name="line-214"></a>      <span class='varop'>&amp;&amp;</span>
-<a name="line-215"></a>      <span class='varid'>equivQName</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-216"></a>
-<a name="line-217"></a><a name="isAttrType"></a><span class='definition'>isAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-218"></a><span class='definition'>isAttrType</span> <span class='varid'>qname</span> <span class='varid'>node</span>
-<a name="line-219"></a>    <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varid'>node</span>
-<a name="line-220"></a>      <span class='varop'>&amp;&amp;</span>
-<a name="line-221"></a>      <span class='varid'>equivQName</span> <span class='varid'>qname</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-222"></a>
-<a name="line-223"></a><a name="tryFetchAttribute"></a><span class='definition'>tryFetchAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
-<a name="line-224"></a><span class='definition'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>qn</span>
-<a name="line-225"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-226"></a>
-<a name="line-227"></a>      <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>candidates</span> 
-<a name="line-228"></a>      <span class='keyword'>then</span> <span class='conid'>Nothing</span>
+<a name="line-207"></a><span class='comment'>--------------------------- </span>
+<a name="line-208"></a><span class='comment'>-- Xml Functions</span>
+<a name="line-209"></a>
+<a name="line-210"></a><a name="collectTextnodes"></a><span class='definition'>collectTextnodes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-211"></a><span class='definition'>collectTextnodes</span>
+<a name="line-212"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>mapMaybe</span> <span class='varid'>getText</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="isElemType"></a><span class='definition'>isElemType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-215"></a><span class='definition'>isElemType</span> <span class='varid'>qn</span> <span class='varid'>node</span>
+<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varid'>node</span>
+<a name="line-217"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-218"></a>      <span class='varid'>equivQName</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-219"></a>
+<a name="line-220"></a><a name="isAttrType"></a><span class='definition'>isAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-221"></a><span class='definition'>isAttrType</span> <span class='varid'>qname</span> <span class='varid'>node</span>
+<a name="line-222"></a>    <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varid'>node</span>
+<a name="line-223"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-224"></a>      <span class='varid'>equivQName</span> <span class='varid'>qname</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-225"></a>
+<a name="line-226"></a><a name="tryFetchAttribute"></a><span class='definition'>tryFetchAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-227"></a><span class='definition'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>qn</span>
+<a name="line-228"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
 <a name="line-229"></a>
-<a name="line-230"></a>      <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>candidates</span> <span class='varop'>&gt;</span> <span class='num'>1</span>
-<a name="line-231"></a>      <span class='keyword'>then</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"More than one attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-230"></a>      <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>candidates</span> 
+<a name="line-231"></a>      <span class='keyword'>then</span> <span class='conid'>Nothing</span>
 <a name="line-232"></a>
-<a name="line-233"></a>      <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varid'>candidates</span>
-<a name="line-234"></a>
-<a name="line-235"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>    
-<a name="line-236"></a>  <span class='keyword'>where</span> 
-<a name="line-237"></a>    <span class='varid'>candidates</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isAttrType</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
-<a name="line-238"></a>
-<a name="line-239"></a><a name="fetchAttributeWDefault"></a><span class='definition'>fetchAttributeWDefault</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-240"></a><span class='definition'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='varid'>def</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>def</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-233"></a>      <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>candidates</span> <span class='varop'>&gt;</span> <span class='num'>1</span>
+<a name="line-234"></a>      <span class='keyword'>then</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"More than one attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-235"></a>
+<a name="line-236"></a>      <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varid'>candidates</span>
+<a name="line-237"></a>
+<a name="line-238"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>    
+<a name="line-239"></a>  <span class='keyword'>where</span> 
+<a name="line-240"></a>    <span class='varid'>candidates</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isAttrType</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
 <a name="line-241"></a>
-<a name="line-242"></a><a name="fetchAttribute"></a><span class='definition'>fetchAttribute</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-243"></a><span class='definition'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" has no attribute: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-242"></a><a name="fetchAttributeWDefault"></a><span class='definition'>fetchAttributeWDefault</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-243"></a><span class='definition'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='varid'>def</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>def</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>name</span><span class='layout'>)</span>
 <a name="line-244"></a>
-<a name="line-245"></a><a name="hasAttribute"></a><span class='definition'>hasAttribute</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-246"></a><span class='definition'>hasAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span>
+<a name="line-245"></a><a name="fetchAttribute"></a><span class='definition'>fetchAttribute</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-246"></a><span class='definition'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" has no attribute: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>
 <a name="line-247"></a>
-<a name="line-248"></a><a name="setAttribute"></a><span class='definition'>setAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>
-<a name="line-249"></a><span class='definition'>setAttribute</span> <span class='varid'>qn</span> <span class='varid'>val</span> <span class='varid'>node</span>
-<a name="line-250"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>setElemAttrl</span> <span class='layout'>(</span><span class='varid'>newA</span> <span class='conop'>:</span> <span class='varid'>attrs</span><span class='layout'>)</span> <span class='varid'>node</span>
-<a name="line-251"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"setAttribute on none-element node"</span>             <span class='comment'>-- how print an XmlNode...</span>
-<a name="line-252"></a>  <span class='keyword'>where</span> 
-<a name="line-253"></a>    <span class='varid'>attrs</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isAttrType</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
-<a name="line-254"></a>    <span class='varid'>newA</span>  <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>val</span><span class='keyglyph'>]</span>
-<a name="line-255"></a>
-<a name="line-256"></a><a name="isWhitespaceNode"></a><span class='definition'>isWhitespaceNode</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-257"></a><span class='definition'>isWhitespaceNode</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isSpace</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getText</span>
+<a name="line-248"></a><a name="hasAttribute"></a><span class='definition'>hasAttribute</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-249"></a><span class='definition'>hasAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="setAttribute"></a><span class='definition'>setAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>
+<a name="line-252"></a><span class='definition'>setAttribute</span> <span class='varid'>qn</span> <span class='varid'>val</span> <span class='varid'>node</span>
+<a name="line-253"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>setElemAttrl</span> <span class='layout'>(</span><span class='varid'>newA</span> <span class='conop'>:</span> <span class='varid'>attrs</span><span class='layout'>)</span> <span class='varid'>node</span>
+<a name="line-254"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"setAttribute on none-element node"</span>             <span class='comment'>-- how print an XmlNode...</span>
+<a name="line-255"></a>  <span class='keyword'>where</span> 
+<a name="line-256"></a>    <span class='varid'>attrs</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isAttrType</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
+<a name="line-257"></a>    <span class='varid'>newA</span>  <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>val</span><span class='keyglyph'>]</span>
 <a name="line-258"></a>
-<a name="line-259"></a><span class='comment'>--------------------------- </span>
-<a name="line-260"></a><span class='comment'>-- Namespace Functions</span>
+<a name="line-259"></a><a name="isWhitespaceNode"></a><span class='definition'>isWhitespaceNode</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-260"></a><span class='definition'>isWhitespaceNode</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isSpace</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getText</span>
 <a name="line-261"></a>
-<a name="line-262"></a><span class='comment'>-- Expanded name, is unique can therefore be used as a key (unlike QName)</span>
-<a name="line-263"></a>
-<a name="line-264"></a><a name="ExName"></a><span class='keyword'>data</span> <span class='conid'>ExName</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-265"></a>  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>
+<a name="line-262"></a><span class='comment'>--------------------------- </span>
+<a name="line-263"></a><span class='comment'>-- Namespace Functions</span>
+<a name="line-264"></a>
+<a name="line-265"></a><span class='comment'>-- Expanded name, is unique can therefore be used as a key (unlike QName)</span>
 <a name="line-266"></a>
-<a name="line-267"></a><a name="mkExName"></a><span class='definition'>mkExName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>
-<a name="line-268"></a><span class='definition'>mkExName</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-267"></a><a name="ExName"></a><span class='keyword'>data</span> <span class='conid'>ExName</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-268"></a>  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>
 <a name="line-269"></a>
-<a name="line-270"></a><a name="exLocal"></a><span class='definition'>exLocal</span><span class='layout'>,</span> <span class='varid'>exUri</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-271"></a><span class='definition'>exLocal</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='varid'>l</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>l</span>
-<a name="line-272"></a><a name="exUri"></a><span class='definition'>exUri</span>   <span class='layout'>(</span><span class='conid'>ExName</span> <span class='keyword'>_</span> <span class='varid'>u</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>u</span>
-<a name="line-273"></a>
-<a name="line-274"></a><a name="parseExName"></a><span class='definition'>parseExName</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>
-<a name="line-275"></a><span class='definition'>parseExName</span> <span class='varid'>uris</span> <span class='varid'>str</span>
-<a name="line-276"></a>    <span class='keyglyph'>|</span> <span class='varid'>noPrefix</span>	<span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='varid'>str</span> <span class='str'>""</span>
-<a name="line-277"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>
-<a name="line-278"></a>    <span class='keyword'>where</span>
-<a name="line-279"></a>    <span class='varid'>noPrefix</span>       <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>loc</span> 
-<a name="line-280"></a>    <span class='varid'>loc</span>            <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>loc'</span>                
-<a name="line-281"></a>    <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>loc'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>str</span>
-<a name="line-282"></a>
-<a name="line-283"></a><span class='comment'>-- Mapping from namespace-Prefixes to namespace-URIs</span>
-<a name="line-284"></a>
-<a name="line-285"></a><a name="UriMapping"></a><span class='keyword'>type</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>
-<a name="line-286"></a>
-<a name="line-287"></a><a name="getUriMap"></a><span class='definition'>getUriMap</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
-<a name="line-288"></a><span class='definition'>getUriMap</span>
-<a name="line-289"></a>    <span class='keyglyph'>=</span> <span class='varid'>uriMappingsFromNsAttrs</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isNsAttr</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='varid'>err</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span>
-<a name="line-290"></a>      <span class='keyword'>where</span>
-<a name="line-291"></a>      <span class='varid'>err</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"Internal error: getUriMap on none-element node"</span>
-<a name="line-292"></a>
-<a name="line-293"></a><a name="setUriMap"></a><span class='definition'>setUriMap</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>
-<a name="line-294"></a><span class='definition'>setUriMap</span> <span class='varid'>nsMap</span> <span class='varid'>node</span>
-<a name="line-295"></a>    <span class='keyglyph'>=</span> <span class='varid'>setElemAttrl</span> <span class='layout'>(</span><span class='varid'>mergeAttrl</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>uriMap2Attrs</span> <span class='varid'>nsMap</span><span class='layout'>)</span> <span class='varid'>node</span>
-<a name="line-296"></a>
-<a name="line-297"></a><a name="uriMap2Attrs"></a><span class='definition'>uriMap2Attrs</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
-<a name="line-298"></a><span class='definition'>uriMap2Attrs</span>
-<a name="line-299"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>joinNsAttr</span> <span class='varop'>.</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span>
-<a name="line-300"></a>
-<a name="line-301"></a><a name="lookupPrefix"></a><span class='definition'>lookupPrefix</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
-<a name="line-302"></a><span class='definition'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>
-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromJustErr</span> <span class='layout'>(</span><span class='str'>"No namespace-Uri bound to prefix: "</span><span class='varop'>++</span><span class='varid'>prefix</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>
-<a name="line-304"></a>
-<a name="line-305"></a><a name="expandNSDecls"></a><span class='definition'>expandNSDecls</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-306"></a><span class='definition'>expandNSDecls</span>
-<a name="line-307"></a>    <span class='keyglyph'>=</span> <span class='varid'>mapTreeCtx</span> <span class='layout'>(</span><span class='varid'>expandNSElem</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xmlns"</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-308"></a>
-<a name="line-309"></a><a name="expandNSElem"></a><span class='definition'>expandNSElem</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>UriMapping</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>
-<a name="line-310"></a><span class='definition'>expandNSElem</span> <span class='varid'>umap</span> <span class='varid'>node</span>
-<a name="line-311"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>umapNew</span><span class='layout'>,</span> <span class='varid'>nodeNew</span><span class='layout'>)</span>
-<a name="line-312"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>umap</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-313"></a>  <span class='keyword'>where</span>
-<a name="line-314"></a>    <span class='varid'>nodeNew</span>          <span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>attrNew</span>
-<a name="line-315"></a>    <span class='varid'>attrNew</span>          <span class='keyglyph'>=</span> <span class='varid'>attrs</span> <span class='varop'>++</span> <span class='varid'>map</span> <span class='varid'>joinNsAttr</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span> <span class='varid'>umapNew</span><span class='layout'>)</span>
-<a name="line-316"></a>    <span class='varid'>umapNew</span>          <span class='keyglyph'>=</span> <span class='varid'>uriMappingsFromNsAttrs</span> <span class='varid'>nsAttrs</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='varid'>umap</span>
-<a name="line-317"></a>    <span class='layout'>(</span><span class='varid'>nsAttrs</span><span class='layout'>,</span> <span class='varid'>attrs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='varid'>isNsAttr</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
-<a name="line-318"></a>
-<a name="line-319"></a><a name="uriMappingsFromNsAttrs"></a><span class='definition'>uriMappingsFromNsAttrs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
-<a name="line-320"></a><span class='definition'>uriMappingsFromNsAttrs</span>
-<a name="line-321"></a>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>splitNsAttr</span>
-<a name="line-322"></a>
-<a name="line-323"></a><a name="isNsAttr"></a><span class='definition'>isNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-324"></a><span class='definition'>isNsAttr</span>
-<a name="line-325"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='varid'>xmlnsNamespace</span> <span class='varop'>.</span> <span class='varid'>namespaceUri</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span>
-<a name="line-326"></a>
-<a name="line-327"></a><a name="splitNsAttr"></a><span class='definition'>splitNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-328"></a><span class='definition'>splitNsAttr</span> <span class='varid'>node</span>
-<a name="line-329"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span><span class='layout'>,</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-330"></a>
-<a name="line-331"></a><a name="joinNsAttr"></a><span class='definition'>joinNsAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-332"></a><span class='definition'>joinNsAttr</span> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>
-<a name="line-333"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>"xmlns"</span> <span class='varid'>prefix</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>uri</span><span class='keyglyph'>]</span>
-<a name="line-334"></a>
-<a name="line-335"></a><span class='comment'>-------------------------</span>
-<a name="line-336"></a><span class='comment'>-- additions to XPATH:</span>
+<a name="line-270"></a><a name="mkExName"></a><span class='definition'>mkExName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>
+<a name="line-271"></a><span class='definition'>mkExName</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-272"></a>
+<a name="line-273"></a><a name="exLocal"></a><span class='definition'>exLocal</span><span class='layout'>,</span> <span class='varid'>exUri</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-274"></a><span class='definition'>exLocal</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='varid'>l</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>l</span>
+<a name="line-275"></a><a name="exUri"></a><span class='definition'>exUri</span>   <span class='layout'>(</span><span class='conid'>ExName</span> <span class='keyword'>_</span> <span class='varid'>u</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>u</span>
+<a name="line-276"></a>
+<a name="line-277"></a><a name="parseExName"></a><span class='definition'>parseExName</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>
+<a name="line-278"></a><span class='definition'>parseExName</span> <span class='varid'>uris</span> <span class='varid'>str</span>
+<a name="line-279"></a>    <span class='keyglyph'>|</span> <span class='varid'>noPrefix</span>	<span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='varid'>str</span> <span class='str'>""</span>
+<a name="line-280"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>
+<a name="line-281"></a>    <span class='keyword'>where</span>
+<a name="line-282"></a>    <span class='varid'>noPrefix</span>       <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>loc</span> 
+<a name="line-283"></a>    <span class='varid'>loc</span>            <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>loc'</span>                
+<a name="line-284"></a>    <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>loc'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>str</span>
+<a name="line-285"></a>
+<a name="line-286"></a><span class='comment'>-- Mapping from namespace-Prefixes to namespace-URIs</span>
+<a name="line-287"></a>
+<a name="line-288"></a><a name="UriMapping"></a><span class='keyword'>type</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="getUriMap"></a><span class='definition'>getUriMap</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
+<a name="line-291"></a><span class='definition'>getUriMap</span>
+<a name="line-292"></a>    <span class='keyglyph'>=</span> <span class='varid'>uriMappingsFromNsAttrs</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isNsAttr</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='varid'>err</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span>
+<a name="line-293"></a>      <span class='keyword'>where</span>
+<a name="line-294"></a>      <span class='varid'>err</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"Internal error: getUriMap on none-element node"</span>
+<a name="line-295"></a>
+<a name="line-296"></a><a name="setUriMap"></a><span class='definition'>setUriMap</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>
+<a name="line-297"></a><span class='definition'>setUriMap</span> <span class='varid'>nsMap</span> <span class='varid'>node</span>
+<a name="line-298"></a>    <span class='keyglyph'>=</span> <span class='varid'>setElemAttrl</span> <span class='layout'>(</span><span class='varid'>mergeAttrl</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>uriMap2Attrs</span> <span class='varid'>nsMap</span><span class='layout'>)</span> <span class='varid'>node</span>
+<a name="line-299"></a>
+<a name="line-300"></a><a name="uriMap2Attrs"></a><span class='definition'>uriMap2Attrs</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-301"></a><span class='definition'>uriMap2Attrs</span>
+<a name="line-302"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>joinNsAttr</span> <span class='varop'>.</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span>
+<a name="line-303"></a>
+<a name="line-304"></a><a name="lookupPrefix"></a><span class='definition'>lookupPrefix</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-305"></a><span class='definition'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>
+<a name="line-306"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromJustErr</span> <span class='layout'>(</span><span class='str'>"No namespace-Uri bound to prefix: "</span><span class='varop'>++</span><span class='varid'>prefix</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>
+<a name="line-307"></a>
+<a name="line-308"></a><a name="expandNSDecls"></a><span class='definition'>expandNSDecls</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-309"></a><span class='definition'>expandNSDecls</span>
+<a name="line-310"></a>    <span class='keyglyph'>=</span> <span class='varid'>mapTreeCtx</span> <span class='layout'>(</span><span class='varid'>expandNSElem</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xmlns"</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-311"></a>
+<a name="line-312"></a><a name="expandNSElem"></a><span class='definition'>expandNSElem</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>UriMapping</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>
+<a name="line-313"></a><span class='definition'>expandNSElem</span> <span class='varid'>umap</span> <span class='varid'>node</span>
+<a name="line-314"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>umapNew</span><span class='layout'>,</span> <span class='varid'>nodeNew</span><span class='layout'>)</span>
+<a name="line-315"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>umap</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-316"></a>  <span class='keyword'>where</span>
+<a name="line-317"></a>    <span class='varid'>nodeNew</span>          <span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>attrNew</span>
+<a name="line-318"></a>    <span class='varid'>attrNew</span>          <span class='keyglyph'>=</span> <span class='varid'>attrs</span> <span class='varop'>++</span> <span class='varid'>map</span> <span class='varid'>joinNsAttr</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span> <span class='varid'>umapNew</span><span class='layout'>)</span>
+<a name="line-319"></a>    <span class='varid'>umapNew</span>          <span class='keyglyph'>=</span> <span class='varid'>uriMappingsFromNsAttrs</span> <span class='varid'>nsAttrs</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='varid'>umap</span>
+<a name="line-320"></a>    <span class='layout'>(</span><span class='varid'>nsAttrs</span><span class='layout'>,</span> <span class='varid'>attrs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='varid'>isNsAttr</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
+<a name="line-321"></a>
+<a name="line-322"></a><a name="uriMappingsFromNsAttrs"></a><span class='definition'>uriMappingsFromNsAttrs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
+<a name="line-323"></a><span class='definition'>uriMappingsFromNsAttrs</span>
+<a name="line-324"></a>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>splitNsAttr</span>
+<a name="line-325"></a>
+<a name="line-326"></a><a name="isNsAttr"></a><span class='definition'>isNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-327"></a><span class='definition'>isNsAttr</span>
+<a name="line-328"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='varid'>xmlnsNamespace</span> <span class='varop'>.</span> <span class='varid'>namespaceUri</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span>
+<a name="line-329"></a>
+<a name="line-330"></a><a name="splitNsAttr"></a><span class='definition'>splitNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-331"></a><span class='definition'>splitNsAttr</span> <span class='varid'>node</span>
+<a name="line-332"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span><span class='layout'>,</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-333"></a>
+<a name="line-334"></a><a name="joinNsAttr"></a><span class='definition'>joinNsAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-335"></a><span class='definition'>joinNsAttr</span> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-336"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>"xmlns"</span> <span class='varid'>prefix</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>uri</span><span class='keyglyph'>]</span>
 <a name="line-337"></a>
-<a name="line-338"></a><a name="mkLiteralExpr"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-339"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span>
+<a name="line-338"></a><span class='comment'>-------------------------</span>
+<a name="line-339"></a><span class='comment'>-- additions to XPATH:</span>
 <a name="line-340"></a>
-<a name="line-341"></a><a name="mkStringExpr"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-342"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"string"</span> <span class='varop'>.</span> <span class='varid'>return</span>
+<a name="line-341"></a><a name="mkLiteralExpr"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-342"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span>
 <a name="line-343"></a>
-<a name="line-344"></a><a name="mkBoolExpr"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-345"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"boolean"</span> <span class='varop'>.</span> <span class='varid'>return</span>
+<a name="line-344"></a><a name="mkStringExpr"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-345"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"string"</span> <span class='varop'>.</span> <span class='varid'>return</span>
 <a name="line-346"></a>
-<a name="line-347"></a><a name="mkTrueExpr"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span>
-<a name="line-348"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"true"</span> <span class='conid'>[]</span>
+<a name="line-347"></a><a name="mkBoolExpr"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-348"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"boolean"</span> <span class='varop'>.</span> <span class='varid'>return</span>
 <a name="line-349"></a>
-<a name="line-350"></a><a name="concatExpr"></a><span class='definition'>concatExpr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-351"></a><span class='definition'>concatExpr</span> <span class='conid'>[]</span>                    <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span> <span class='str'>""</span>
-<a name="line-352"></a><span class='definition'>concatExpr</span> <span class='keyglyph'>[</span><span class='varid'>lit</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>lit</span>
-<a name="line-353"></a><span class='definition'>concatExpr</span> <span class='varid'>xs1</span><span class='keyglyph'>@</span><span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span>               <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"string"</span> <span class='varid'>xs1</span>
-<a name="line-354"></a><span class='definition'>concatExpr</span> <span class='varid'>xs</span>                    <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"concat"</span> <span class='varid'>xs</span>
-<a name="line-355"></a>
-<a name="line-356"></a><a name="splitExpr"></a><span class='definition'>splitExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>
-<a name="line-357"></a><span class='definition'>splitExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>expr</span>
-<a name="line-358"></a><span class='definition'>splitExpr</span> <span class='varid'>rest</span>                 <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>rest</span><span class='keyglyph'>]</span>
-<a name="line-359"></a>
-<a name="line-360"></a><a name="unionExpr"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-361"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>
-<a name="line-362"></a><span class='definition'>unionExpr</span> <span class='varid'>es</span>  <span class='keyglyph'>=</span> <span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>es</span>
-<a name="line-363"></a>
-<a name="line-364"></a><a name="splitMatchByPrio"></a><span class='comment'>-- Intelligent splitting: Split an expression into subexpressions with equal priority</span>
-<a name="line-365"></a><span class='comment'>-- for example: "a|c/d|e|f/g"  =&gt; [(0.0, "a|e"), (0.5, "c/d|f/g")]</span>
-<a name="line-366"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Float</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span><span class='keyglyph'>]</span>
-<a name="line-367"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>=</span> 
-<a name="line-368"></a>    <span class='varid'>map</span> <span class='varid'>compress</span> <span class='varop'>.</span> <span class='varid'>groupBy</span> <span class='varid'>eq</span> <span class='varop'>.</span> <span class='varid'>sortBy</span> <span class='varid'>cmp</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>computePriority</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>id</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitExpr</span>
-<a name="line-369"></a>  <span class='keyword'>where</span>
-<a name="line-370"></a>    <span class='varid'>eq</span>  <span class='varid'>x</span> <span class='varid'>y</span>  <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>fst</span> <span class='varid'>y</span>
-<a name="line-371"></a>    <span class='varid'>cmp</span> <span class='varid'>x</span> <span class='varid'>y</span>  <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>fst</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fst</span> <span class='varid'>y</span><span class='layout'>)</span>
-<a name="line-372"></a>    <span class='varid'>compress</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>***</span> <span class='varid'>unionExpr</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>unzip</span>
-<a name="line-373"></a>
-<a name="line-374"></a><a name="computePriority"></a><span class='definition'>computePriority</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>
-<a name="line-375"></a><span class='definition'>computePriority</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='keyglyph'>[</span><span class='conid'>Step</span> <span class='keyword'>_</span> <span class='varid'>ntest</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>computeNTestPriority</span> <span class='varid'>ntest</span>
-<a name="line-376"></a><span class='definition'>computePriority</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='num'>0.5</span>
-<a name="line-377"></a>
-<a name="line-378"></a><a name="computeNTestPriority"></a><span class='definition'>computeNTestPriority</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>
-<a name="line-379"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='keyword'>_</span><span class='layout'>)</span>        <span class='keyglyph'>=</span>  <span class='num'>0.0</span>
-<a name="line-380"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.5</span>
-<a name="line-381"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>nt</span><span class='layout'>)</span> 
-<a name="line-382"></a>  <span class='keyglyph'>|</span> <span class='varid'>namePrefix</span> <span class='varid'>nt</span> <span class='varop'>/=</span> <span class='str'>""</span>
-<a name="line-383"></a>    <span class='varop'>&amp;&amp;</span> <span class='varid'>localPart</span> <span class='varid'>nt</span> <span class='varop'>==</span> <span class='str'>"*"</span>        <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.25</span>
-<a name="line-384"></a>  <span class='keyglyph'>|</span> <span class='varid'>localPart</span> <span class='varid'>nt</span> <span class='varop'>==</span> <span class='str'>"*"</span>           <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.5</span>
-<a name="line-385"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                     <span class='keyglyph'>=</span>  <span class='num'>0.0</span>
-<a name="line-386"></a>
-<a name="line-387"></a><a name="isMatchExpr"></a><span class='definition'>isMatchExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
-<a name="line-388"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>exprs</span><span class='layout'>)</span>                          <span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='varid'>isMatchExpr</span> <span class='varid'>exprs</span>
-<a name="line-389"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>                                 <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-390"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"id"</span> <span class='keyglyph'>[</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='keyglyph'>]</span><span class='layout'>)</span>                 <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-391"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"key"</span> <span class='keyglyph'>[</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
-<a name="line-392"></a><span class='definition'>isMatchExpr</span> <span class='keyword'>_</span>                                              <span class='keyglyph'>=</span> <span class='conid'>False</span>
-<a name="line-393"></a>
-<a name="line-394"></a><span class='comment'>--------------------------- </span>
-<a name="line-395"></a><span class='comment'>-- Misc:</span>
+<a name="line-350"></a><a name="mkTrueExpr"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span>
+<a name="line-351"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"true"</span> <span class='conid'>[]</span>
+<a name="line-352"></a>
+<a name="line-353"></a><a name="concatExpr"></a><span class='definition'>concatExpr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-354"></a><span class='definition'>concatExpr</span> <span class='conid'>[]</span>                    <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span> <span class='str'>""</span>
+<a name="line-355"></a><span class='definition'>concatExpr</span> <span class='keyglyph'>[</span><span class='varid'>lit</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>lit</span>
+<a name="line-356"></a><span class='definition'>concatExpr</span> <span class='varid'>xs1</span><span class='keyglyph'>@</span><span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span>               <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"string"</span> <span class='varid'>xs1</span>
+<a name="line-357"></a><span class='definition'>concatExpr</span> <span class='varid'>xs</span>                    <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"concat"</span> <span class='varid'>xs</span>
+<a name="line-358"></a>
+<a name="line-359"></a><a name="splitExpr"></a><span class='definition'>splitExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>
+<a name="line-360"></a><span class='definition'>splitExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>expr</span>
+<a name="line-361"></a><span class='definition'>splitExpr</span> <span class='varid'>rest</span>                 <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>rest</span><span class='keyglyph'>]</span>
+<a name="line-362"></a>
+<a name="line-363"></a><a name="unionExpr"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-364"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-365"></a><span class='definition'>unionExpr</span> <span class='varid'>es</span>  <span class='keyglyph'>=</span> <span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>es</span>
+<a name="line-366"></a>
+<a name="line-367"></a><a name="splitMatchByPrio"></a><span class='comment'>-- Intelligent splitting: Split an expression into subexpressions with equal priority</span>
+<a name="line-368"></a><span class='comment'>-- for example: "a|c/d|e|f/g"  =&gt; [(0.0, "a|e"), (0.5, "c/d|f/g")]</span>
+<a name="line-369"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Float</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-370"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>=</span> 
+<a name="line-371"></a>    <span class='varid'>map</span> <span class='varid'>compress</span> <span class='varop'>.</span> <span class='varid'>groupBy</span> <span class='varid'>eq</span> <span class='varop'>.</span> <span class='varid'>sortBy</span> <span class='varid'>cmp</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>computePriority</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>id</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitExpr</span>
+<a name="line-372"></a>  <span class='keyword'>where</span>
+<a name="line-373"></a>    <span class='varid'>eq</span>  <span class='varid'>x</span> <span class='varid'>y</span>  <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>fst</span> <span class='varid'>y</span>
+<a name="line-374"></a>    <span class='varid'>cmp</span> <span class='varid'>x</span> <span class='varid'>y</span>  <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>fst</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fst</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-375"></a>    <span class='varid'>compress</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>***</span> <span class='varid'>unionExpr</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>unzip</span>
+<a name="line-376"></a>
+<a name="line-377"></a><a name="computePriority"></a><span class='definition'>computePriority</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>
+<a name="line-378"></a><span class='definition'>computePriority</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='keyglyph'>[</span><span class='conid'>Step</span> <span class='keyword'>_</span> <span class='varid'>ntest</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>computeNTestPriority</span> <span class='varid'>ntest</span>
+<a name="line-379"></a><span class='definition'>computePriority</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='num'>0.5</span>
+<a name="line-380"></a>
+<a name="line-381"></a><a name="computeNTestPriority"></a><span class='definition'>computeNTestPriority</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>
+<a name="line-382"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='keyword'>_</span><span class='layout'>)</span>        <span class='keyglyph'>=</span>  <span class='num'>0.0</span>
+<a name="line-383"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.5</span>
+<a name="line-384"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>nt</span><span class='layout'>)</span> 
+<a name="line-385"></a>  <span class='keyglyph'>|</span> <span class='varid'>namePrefix</span> <span class='varid'>nt</span> <span class='varop'>/=</span> <span class='str'>""</span>
+<a name="line-386"></a>    <span class='varop'>&amp;&amp;</span> <span class='varid'>localPart</span> <span class='varid'>nt</span> <span class='varop'>==</span> <span class='str'>"*"</span>        <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.25</span>
+<a name="line-387"></a>  <span class='keyglyph'>|</span> <span class='varid'>localPart</span> <span class='varid'>nt</span> <span class='varop'>==</span> <span class='str'>"*"</span>           <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.5</span>
+<a name="line-388"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                     <span class='keyglyph'>=</span>  <span class='num'>0.0</span>
+<a name="line-389"></a>
+<a name="line-390"></a><a name="isMatchExpr"></a><span class='definition'>isMatchExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-391"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>exprs</span><span class='layout'>)</span>                          <span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='varid'>isMatchExpr</span> <span class='varid'>exprs</span>
+<a name="line-392"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>                                 <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-393"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"id"</span> <span class='keyglyph'>[</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='keyglyph'>]</span><span class='layout'>)</span>                 <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-394"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"key"</span> <span class='keyglyph'>[</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-395"></a><span class='definition'>isMatchExpr</span> <span class='keyword'>_</span>                                              <span class='keyglyph'>=</span> <span class='conid'>False</span>
 <a name="line-396"></a>
-<a name="line-397"></a><a name="fromJustErr"></a><span class='definition'>fromJustErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
-<a name="line-398"></a><span class='definition'>fromJustErr</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>id</span> 
+<a name="line-397"></a><span class='comment'>--------------------------- </span>
+<a name="line-398"></a><span class='comment'>-- Misc:</span>
 <a name="line-399"></a>
-<a name="line-400"></a><a name="readWDefault"></a><span class='definition'>readWDefault</span> <span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
-<a name="line-401"></a><span class='definition'>readWDefault</span> <span class='varid'>a</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>reads</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-400"></a><a name="fromJustErr"></a><span class='definition'>fromJustErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-401"></a><span class='definition'>fromJustErr</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>id</span> 
 <a name="line-402"></a>
-<a name="line-403"></a><span class='comment'>--------------------------- </span>
+<a name="line-403"></a><a name="readWDefault"></a><span class='definition'>readWDefault</span> <span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-404"></a><span class='definition'>readWDefault</span> <span class='varid'>a</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>reads</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-405"></a>
+<a name="line-406"></a><span class='comment'>--------------------------- </span>
 </pre></body>
 </html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html b/doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html
--- a/doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html
@@ -16,497 +16,496 @@
 <a name="line-8"></a>   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
 <a name="line-9"></a>   Stability  : experimental
 <a name="line-10"></a>   Portability: portable
-<a name="line-11"></a>   Version    : $Id: Compilation.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $
-<a name="line-12"></a>
-<a name="line-13"></a>   The compilation functions for XSLT stylesheets
-<a name="line-14"></a>
-<a name="line-15"></a>-}</span>
-<a name="line-16"></a>
-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
-<a name="line-18"></a>
-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Compilation</span> 
-<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>prepareXSLTDocument</span>        <span class='comment'>-- :: XmlTree -&gt; XmlTree</span>
-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span>         <span class='comment'>-- :: XmlTree -&gt; [CompiledStylesheet] -&gt; CompiledStylesheet</span>
-<a name="line-22"></a>    <span class='layout'>)</span>
-<a name="line-23"></a><span class='keyword'>where</span>
-<a name="line-24"></a>
-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>
-<a name="line-26"></a>
-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>
-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
-<a name="line-30"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span><span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
-<a name="line-32"></a>
-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span><span class='varop'>.</span><span class='conid'>Prim</span><span class='layout'>(</span><span class='varid'>runParser</span><span class='layout'>)</span>
-<a name="line-34"></a>
-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>
-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</span>
-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>
-<a name="line-38"></a>
-<a name="line-39"></a><span class='comment'>-- No deep meaning just a shortcut notation for a *very* common expression...</span>
-<a name="line-40"></a>
-<a name="line-41"></a><span class='keyword'>infixl</span> <span class='num'>9</span> <span class='varop'>&gt;&lt;</span>
-<a name="line-42"></a>
-<a name="line-43"></a><a name="><"></a><span class='layout'>(</span><span class='varop'>&gt;&lt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
-<a name="line-44"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>&gt;&lt;</span> <span class='varid'>node</span>
-<a name="line-45"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>$</span> <span class='varid'>getUriMap</span> <span class='varid'>node</span>
-<a name="line-46"></a>
-<a name="line-47"></a><span class='comment'>-- --------------------------</span>
-<a name="line-48"></a>
-<a name="line-49"></a><a name="parseExpr"></a><span class='definition'>parseExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
-<a name="line-50"></a><span class='definition'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>selectStr</span>
-<a name="line-51"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>error</span><span class='varop'>.</span><span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varid'>parseResult</span>                               
-<a name="line-52"></a>    <span class='keyword'>where</span>
-<a name="line-53"></a>    <span class='varid'>parseResult</span> <span class='keyglyph'>=</span> <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toList</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='layout'>(</span><span class='str'>"select-expr:"</span><span class='varop'>++</span><span class='varid'>selectStr</span><span class='layout'>)</span> <span class='varid'>selectStr</span> 
-<a name="line-54"></a>
-<a name="line-55"></a><a name="parseSelect"></a><span class='definition'>parseSelect</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SelectExpr</span>
-<a name="line-56"></a><span class='definition'>parseSelect</span> <span class='varid'>uris</span>
-<a name="line-57"></a>    <span class='keyglyph'>=</span> <span class='conid'>SelectExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>
-<a name="line-58"></a>
-<a name="line-59"></a><a name="parseTest"></a><span class='definition'>parseTest</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TestExpr</span>
-<a name="line-60"></a><span class='definition'>parseTest</span> <span class='varid'>uris</span>
-<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='conid'>TestExpr</span> <span class='varop'>.</span> <span class='varid'>mkBoolExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>
-<a name="line-62"></a>
-<a name="line-63"></a><a name="parseStringExpr"></a><span class='definition'>parseStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StringExpr</span>
-<a name="line-64"></a><span class='definition'>parseStringExpr</span> <span class='varid'>uris</span>
-<a name="line-65"></a>    <span class='keyglyph'>=</span> <span class='conid'>StringExpr</span> <span class='varop'>.</span> <span class='varid'>mkStringExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>
-<a name="line-66"></a>
-<a name="line-67"></a><a name="parseMatch"></a><span class='definition'>parseMatch</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MatchExpr</span>
-<a name="line-68"></a><span class='definition'>parseMatch</span> <span class='varid'>uris</span> <span class='varid'>str</span>
-<a name="line-69"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isMatchExpr</span> <span class='varid'>expr</span>
-<a name="line-70"></a>      <span class='keyword'>then</span> <span class='conid'>MatchExpr</span> <span class='varid'>expr</span>
-<a name="line-71"></a>      <span class='keyword'>else</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>" is not a legal match-expression"</span>
-<a name="line-72"></a>    <span class='keyword'>where</span> 
-<a name="line-73"></a>    <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>str</span>
-<a name="line-74"></a>
-<a name="line-75"></a><span class='comment'>-- --------------------------</span>
-<a name="line-76"></a>
-<a name="line-77"></a><a name="parseAVT"></a><span class='definition'>parseAVT</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StringExpr</span>
-<a name="line-78"></a><span class='definition'>parseAVT</span> <span class='varid'>uris</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> 
-<a name="line-79"></a>    <span class='conid'>StringExpr</span> <span class='varop'>$</span> <span class='varid'>concatExpr</span> <span class='varop'>$</span> <span class='varid'>splitAVT</span> <span class='varid'>str</span> <span class='str'>""</span>
-<a name="line-80"></a>  <span class='keyword'>where</span>
-<a name="line-81"></a>
-<a name="line-82"></a>    <span class='varid'>splitAVT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>
-<a name="line-83"></a>    <span class='varid'>splitAVT</span> <span class='str'>""</span>           <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>acc2lit</span> <span class='varid'>acc</span>
-<a name="line-84"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>acc</span>
-<a name="line-85"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='chr'>'}'</span><span class='conop'>:</span><span class='varid'>acc</span>
-<a name="line-86"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>     <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"{}"</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='keyword'>in</span>
-<a name="line-87"></a>                                  <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>head</span> <span class='varid'>rest</span> <span class='varop'>==</span> <span class='chr'>'}'</span>
-<a name="line-88"></a>                                    <span class='keyword'>then</span> <span class='varid'>acc2lit</span> <span class='varid'>acc</span> <span class='varop'>++</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>body</span> <span class='conop'>:</span> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='str'>""</span>
-<a name="line-89"></a>                                    <span class='keyword'>else</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Unterminated expression "</span> <span class='varop'>++</span> <span class='varid'>xs</span> <span class='varop'>++</span> <span class='str'>" in AVT."</span>
-<a name="line-90"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>      <span class='keyword'>_</span>   <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"deserted '}' in AVT."</span>
-<a name="line-91"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>       <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='varid'>x</span><span class='conop'>:</span><span class='varid'>acc</span>
-<a name="line-92"></a>
-<a name="line-93"></a>    <span class='varid'>acc2lit</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> 
-<a name="line-94"></a>    <span class='varid'>acc2lit</span> <span class='str'>""</span>  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
-<a name="line-95"></a>    <span class='varid'>acc2lit</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkLiteralExpr</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varid'>acc</span><span class='keyglyph'>]</span>
-<a name="line-96"></a>
-<a name="line-97"></a><span class='comment'>-- --------------------------</span>
-<a name="line-98"></a>
-<a name="line-99"></a><a name="compileComputedQName"></a><span class='comment'>-- extract ComputedQName from "name" and "namespace" AVTs of an xsl:element- or xsl-attribute-node</span>
-<a name="line-100"></a><span class='definition'>compileComputedQName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ComputedQName</span>
-<a name="line-101"></a><span class='definition'>compileComputedQName</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-102"></a>    <span class='layout'>(</span><span class='conid'>CompQName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>nameAVT</span> <span class='varid'>nsAVT</span>
-<a name="line-103"></a>  <span class='keyword'>where</span> 
-<a name="line-104"></a>    <span class='varid'>nameAVT</span>  <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
-<a name="line-105"></a>    <span class='varid'>nsAVT</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltNamespace</span> <span class='str'>""</span>
-<a name="line-106"></a>
-<a name="line-107"></a><span class='comment'>-- --------------------------</span>
-<a name="line-108"></a>
-<a name="line-109"></a><a name="compileComposite"></a><span class='definition'>compileComposite</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-110"></a><span class='definition'>compileComposite</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>compileTemplate</span> <span class='varop'>.</span> <span class='varid'>return</span><span class='layout'>)</span>
-<a name="line-111"></a>
-<a name="line-112"></a><a name="compileMessage"></a><span class='definition'>compileMessage</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-113"></a><span class='definition'>compileMessage</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplMessage</span> <span class='varid'>halt</span> <span class='varid'>content</span>
-<a name="line-114"></a>  <span class='keyword'>where</span> <span class='varid'>halt</span>     <span class='keyglyph'>=</span> <span class='varid'>termAttr</span> <span class='varop'>==</span> <span class='str'>"yes"</span>
-<a name="line-115"></a>        <span class='varid'>termAttr</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltTerminate</span> <span class='str'>"no"</span>
-<a name="line-116"></a>        <span class='varid'>content</span>  <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-117"></a>
-<a name="line-118"></a><a name="compileForEach"></a><span class='definition'>compileForEach</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-119"></a><span class='definition'>compileForEach</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplForEach</span> <span class='varid'>expr</span> <span class='varid'>sorting</span> <span class='varid'>template</span>
-<a name="line-120"></a>  <span class='keyword'>where</span> <span class='varid'>expr</span>       <span class='keyglyph'>=</span> <span class='varid'>parseSelect</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
-<a name="line-121"></a>        <span class='varid'>sorting</span>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileSortKey</span> <span class='varid'>srt</span>
-<a name="line-122"></a>        <span class='varid'>template</span>   <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>cnt</span>
-<a name="line-123"></a>        <span class='layout'>(</span><span class='varid'>srt</span><span class='layout'>,</span> <span class='varid'>cnt</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltSort</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-124"></a>
-<a name="line-125"></a><a name="compileChoose"></a><span class='definition'>compileChoose</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-126"></a><span class='definition'>compileChoose</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplChoose</span> <span class='varid'>whenParts</span>
-<a name="line-127"></a>  <span class='keyword'>where</span> <span class='varid'>whenParts</span>  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compl</span> <span class='varid'>children</span>
-<a name="line-128"></a>        <span class='varid'>children</span>   <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isElem</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-129"></a>        <span class='varid'>compl</span> <span class='varid'>node'</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node'</span> <span class='keyword'>in</span>
-<a name="line-130"></a>                        <span class='keyword'>if</span>      <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltWhen</span>      <span class='keyword'>then</span> <span class='varid'>compileWhen</span> <span class='varid'>node'</span>
-<a name="line-131"></a>                        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltOtherwise</span> <span class='keyword'>then</span> <span class='varid'>compileOtherwise</span> <span class='varid'>node'</span>
-<a name="line-132"></a>                        <span class='keyword'>else</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"No elements of type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>" allowed within xsl-choose template!"</span><span class='layout'>)</span>
-<a name="line-133"></a>
-<a name="line-134"></a><a name="compileWhen"></a><span class='definition'>compileWhen</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>When</span>
-<a name="line-135"></a><span class='definition'>compileWhen</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='varid'>expr</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-136"></a>  <span class='keyword'>where</span> <span class='varid'>expr</span>     <span class='keyglyph'>=</span> <span class='varid'>parseTest</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltTest</span>
-<a name="line-137"></a>
-<a name="line-138"></a><a name="compileOtherwise"></a><span class='comment'>-- Otherwise is treated as a when-Part with node-test "true()"</span>
-<a name="line-139"></a><span class='definition'>compileOtherwise</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>When</span>
-<a name="line-140"></a><span class='definition'>compileOtherwise</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='layout'>(</span><span class='conid'>TestExpr</span> <span class='varid'>mkTrueExpr</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-141"></a>
-<a name="line-142"></a><a name="compileIf"></a><span class='comment'>-- "if" is treated as a convenience-form of choose with exactly one "when"-Part</span>
-<a name="line-143"></a><span class='definition'>compileIf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-144"></a><span class='definition'>compileIf</span> <span class='keyglyph'>=</span> <span class='conid'>TemplChoose</span> <span class='varop'>.</span> <span class='varid'>return</span> <span class='varop'>.</span> <span class='varid'>compileWhen</span>
-<a name="line-145"></a>
-<a name="line-146"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-147"></a>
-<a name="line-148"></a><a name="parseExNames"></a><span class='definition'>parseExNames</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span>
-<a name="line-149"></a><span class='definition'>parseExNames</span> <span class='varid'>urm</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>parseExName</span> <span class='varid'>urm</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>
-<a name="line-150"></a>
-<a name="line-151"></a><a name="compileElement"></a><span class='definition'>compileElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-152"></a><span class='definition'>compileElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-153"></a>    <span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>attribSets</span> <span class='varid'>template</span>
-<a name="line-154"></a>  <span class='keyword'>where</span> 
-<a name="line-155"></a>    <span class='varid'>compQName</span>   <span class='keyglyph'>=</span> <span class='varid'>compileComputedQName</span> <span class='varid'>node</span>
-<a name="line-156"></a>    <span class='varid'>attribSets</span>  <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>
-<a name="line-157"></a>                  <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>
-<a name="line-158"></a>    <span class='varid'>template</span>    <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-159"></a>
-<a name="line-160"></a><a name="compileAttribute"></a><span class='definition'>compileAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-161"></a><span class='definition'>compileAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-162"></a>    <span class='conid'>TemplAttribute</span> <span class='layout'>(</span><span class='varid'>compileComputedQName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-163"></a>
-<a name="line-164"></a><a name="compileText"></a><span class='comment'>-- compiles xsl:text</span>
-<a name="line-165"></a><span class='definition'>compileText</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-166"></a><span class='definition'>compileText</span> <span class='keyglyph'>=</span> <span class='conid'>TemplText</span> <span class='varop'>.</span> <span class='varid'>collectTextnodes</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>
-<a name="line-167"></a>
-<a name="line-168"></a><a name="compileTextnode"></a><span class='comment'>-- compiles textNode </span>
-<a name="line-169"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-170"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>=</span> <span class='conid'>TemplText</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getText</span>
-<a name="line-171"></a>
-<a name="line-172"></a><a name="compileValueOf"></a><span class='definition'>compileValueOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-173"></a><span class='definition'>compileValueOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-174"></a>    <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseStringExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
-<a name="line-175"></a>
-<a name="line-176"></a><a name="compileComment"></a><span class='definition'>compileComment</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-177"></a><span class='definition'>compileComment</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComment</span> <span class='varop'>.</span> <span class='varid'>compileTemplate</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>
-<a name="line-178"></a>
-<a name="line-179"></a><a name="compileProcInstr"></a><span class='definition'>compileProcInstr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-180"></a><span class='definition'>compileProcInstr</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-181"></a>   <span class='conid'>TemplProcInstr</span> <span class='varid'>name</span> <span class='varid'>content</span>
-<a name="line-182"></a>  <span class='keyword'>where</span>
-<a name="line-183"></a>    <span class='varid'>name</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>  <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
-<a name="line-184"></a>    <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-185"></a>
-<a name="line-186"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-187"></a>
-<a name="line-188"></a><a name="compileLiteralResultElement"></a><span class='definition'>compileLiteralResultElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-189"></a><span class='definition'>compileLiteralResultElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-190"></a>    <span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='varid'>nsUris</span> <span class='varid'>attribSets</span> <span class='varid'>content</span>
-<a name="line-191"></a>  <span class='keyword'>where</span> 
-<a name="line-192"></a>    <span class='varid'>nsUris</span>             <span class='keyglyph'>=</span> <span class='varid'>extractAddUris</span> <span class='varid'>node</span>
-<a name="line-193"></a>    <span class='varid'>compQName</span>          <span class='keyglyph'>=</span> <span class='conid'>LiteralQName</span>   <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span>
-<a name="line-194"></a>    <span class='varid'>attribSets</span>         <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>attrSetsStr</span>
-<a name="line-195"></a>    <span class='varid'>attrSetsStr</span>        <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSetsLRE</span> <span class='str'>""</span>
-<a name="line-196"></a>    <span class='varid'>content</span>            <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='varop'>$</span> <span class='varid'>attributes</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>template</span><span class='keyglyph'>]</span>
-<a name="line-197"></a>    <span class='varid'>attributes</span>         <span class='keyglyph'>=</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>compileLREAttribute</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
-<a name="line-198"></a>    <span class='varid'>template</span>           <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-199"></a>
-<a name="line-200"></a><a name="compileLREAttribute"></a><span class='definition'>compileLREAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Template</span>
-<a name="line-201"></a><span class='definition'>compileLREAttribute</span> <span class='varid'>uris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-202"></a>    <span class='keyword'>if</span> <span class='varid'>isSpecial</span> 
-<a name="line-203"></a>      <span class='keyword'>then</span> <span class='conid'>Nothing</span>
-<a name="line-204"></a>      <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='conid'>TemplAttribute</span> <span class='layout'>(</span><span class='conid'>LiteralQName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>val</span>  
-<a name="line-205"></a>  <span class='keyword'>where</span> 
-<a name="line-206"></a>    <span class='varid'>isSpecial</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>xsltUri</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='keyglyph'>]</span>
-<a name="line-207"></a>    <span class='varid'>name</span>      <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span>
-<a name="line-208"></a>    <span class='varid'>val</span>       <span class='keyglyph'>=</span> <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseAVT</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-209"></a>
-<a name="line-210"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-211"></a>
-<a name="line-212"></a><a name="compileApplyTempl"></a><span class='definition'>compileApplyTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-213"></a><span class='definition'>compileApplyTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-214"></a>    <span class='conid'>TemplApply</span> <span class='varid'>expr</span> <span class='varid'>mode</span> <span class='varid'>args</span> <span class='varid'>sorting</span>
-<a name="line-215"></a>  <span class='keyword'>where</span>
-<a name="line-216"></a>    <span class='varid'>expr</span>    <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseSelect</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
-<a name="line-217"></a>    <span class='varid'>mode</span>    <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMode</span>
-<a name="line-218"></a>    <span class='varid'>args</span>    <span class='keyglyph'>=</span> <span class='varid'>compileVariables</span>          <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltWithParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>par</span>
-<a name="line-219"></a>    <span class='varid'>sorting</span> <span class='keyglyph'>=</span>  <span class='varid'>map</span> <span class='varid'>compileSortKey</span> <span class='varid'>srt</span>
-<a name="line-220"></a>    <span class='layout'>(</span><span class='varid'>srt</span><span class='layout'>,</span><span class='varid'>par</span><span class='layout'>)</span> <span class='keyglyph'>=</span>  <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltSort</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-221"></a>
-<a name="line-222"></a><a name="compileApplyImports"></a><span class='definition'>compileApplyImports</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-223"></a><span class='definition'>compileApplyImports</span> <span class='sel'>_node</span>
-<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='conid'>TemplApplyImports</span>
-<a name="line-225"></a>
-<a name="line-226"></a><a name="compileCallTempl"></a><span class='definition'>compileCallTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-227"></a><span class='definition'>compileCallTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-228"></a>    <span class='conid'>TemplCall</span> <span class='varid'>name</span> <span class='varid'>args</span>
-<a name="line-229"></a>  <span class='keyword'>where</span>
-<a name="line-230"></a>    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
-<a name="line-231"></a>    <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='varid'>compileVariables</span>  <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltWithParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-232"></a>
-<a name="line-233"></a><a name="compileTemplVariable"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-234"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>=</span> <span class='conid'>TemplVariable</span> <span class='varop'>.</span> <span class='varid'>compileVariable</span>
-<a name="line-235"></a>
-<a name="line-236"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-237"></a>
-<a name="line-238"></a><a name="compileCopy"></a><span class='definition'>compileCopy</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-239"></a><span class='definition'>compileCopy</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-240"></a>    <span class='conid'>TemplCopy</span> <span class='varid'>attribSets</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-241"></a>  <span class='keyword'>where</span>
-<a name="line-242"></a>    <span class='varid'>attribSets</span>  <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>
-<a name="line-243"></a>
-<a name="line-244"></a><a name="compileCopyOf"></a><span class='definition'>compileCopyOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-245"></a><span class='definition'>compileCopyOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplCopyOf</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
-<a name="line-246"></a>
-<a name="line-247"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-248"></a>
-<a name="line-249"></a><a name="compileTemplate"></a><span class='definition'>compileTemplate</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
-<a name="line-250"></a><span class='definition'>compileTemplate</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span>       <span class='keyglyph'>=</span> 
-<a name="line-251"></a>   <span class='keyword'>if</span> <span class='varid'>isElem</span> <span class='varid'>node</span>
-<a name="line-252"></a>   <span class='keyword'>then</span> <span class='keyword'>let</span> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span> <span class='keyword'>in</span>        
-<a name="line-253"></a>        <span class='keyword'>if</span>      <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltMessage</span>        <span class='keyword'>then</span> <span class='varid'>compileMessage</span>       <span class='varid'>node</span>
-<a name="line-254"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltForEach</span>        <span class='keyword'>then</span> <span class='varid'>compileForEach</span>       <span class='varid'>node</span>
-<a name="line-255"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltChoose</span>         <span class='keyword'>then</span> <span class='varid'>compileChoose</span>        <span class='varid'>node</span>   
-<a name="line-256"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltIf</span>             <span class='keyword'>then</span> <span class='varid'>compileIf</span>            <span class='varid'>node</span>
-<a name="line-257"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltElement</span>        <span class='keyword'>then</span> <span class='varid'>compileElement</span>       <span class='varid'>node</span>
-<a name="line-258"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltAttribute</span>      <span class='keyword'>then</span> <span class='varid'>compileAttribute</span>     <span class='varid'>node</span>
-<a name="line-259"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltText</span>           <span class='keyword'>then</span> <span class='varid'>compileText</span>          <span class='varid'>node</span>
-<a name="line-260"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltValueOf</span>        <span class='keyword'>then</span> <span class='varid'>compileValueOf</span>       <span class='varid'>node</span>
-<a name="line-261"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltComment</span>        <span class='keyword'>then</span> <span class='varid'>compileComment</span>       <span class='varid'>node</span>
-<a name="line-262"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltProcInstr</span>      <span class='keyword'>then</span> <span class='varid'>compileProcInstr</span>     <span class='varid'>node</span>
-<a name="line-263"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltApplyTemplates</span> <span class='keyword'>then</span> <span class='varid'>compileApplyTempl</span>    <span class='varid'>node</span>
-<a name="line-264"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltApplyImports</span>   <span class='keyword'>then</span> <span class='varid'>compileApplyImports</span>  <span class='varid'>node</span>
-<a name="line-265"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCallTemplate</span>   <span class='keyword'>then</span> <span class='varid'>compileCallTempl</span>     <span class='varid'>node</span>
-<a name="line-266"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltVariable</span>       <span class='keyword'>then</span> <span class='varid'>compileTemplVariable</span> <span class='varid'>node</span>
-<a name="line-267"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCopy</span>           <span class='keyword'>then</span> <span class='varid'>compileCopy</span>          <span class='varid'>node</span>
-<a name="line-268"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCopyOf</span>         <span class='keyword'>then</span> <span class='varid'>compileCopyOf</span>        <span class='varid'>node</span>
-<a name="line-269"></a>
-<a name="line-270"></a>        <span class='comment'>-- no other xslt elements allowed here:</span>
-<a name="line-271"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span> <span class='varop'>==</span> <span class='varid'>xsltUri</span>
-<a name="line-272"></a>        <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"xslt-element "</span> <span class='varop'>++</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>" not allowed within this context."</span>
-<a name="line-273"></a>
-<a name="line-274"></a>        <span class='comment'>-- for now all other elements will be considered as Literal Result Elements</span>
-<a name="line-275"></a>        <span class='keyword'>else</span> <span class='varid'>compileLiteralResultElement</span> <span class='varid'>node</span>
-<a name="line-276"></a>
-<a name="line-277"></a>   <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isText</span> <span class='varid'>node</span> <span class='keyword'>then</span> <span class='varid'>compileTextnode</span> <span class='varid'>node</span>
-<a name="line-278"></a>
-<a name="line-279"></a>   <span class='keyword'>else</span>
-<a name="line-280"></a>       <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Unsupported node-type in xslt sheet: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-281"></a><span class='definition'>compileTemplate</span> <span class='varid'>list</span> <span class='keyglyph'>=</span> <span class='varid'>compileComposite</span> <span class='varid'>list</span>
+<a name="line-11"></a>
+<a name="line-12"></a>   The compilation functions for XSLT stylesheets
+<a name="line-13"></a>
+<a name="line-14"></a>-}</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Compilation</span> 
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>prepareXSLTDocument</span>        <span class='comment'>-- :: XmlTree -&gt; XmlTree</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span>         <span class='comment'>-- :: XmlTree -&gt; [CompiledStylesheet] -&gt; CompiledStylesheet</span>
+<a name="line-21"></a>    <span class='layout'>)</span>
+<a name="line-22"></a><span class='keyword'>where</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='keyword'>import</span>           <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-27"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>
+<a name="line-28"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-29"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
+<a name="line-30"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span><span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>
+<a name="line-31"></a>
+<a name="line-32"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span><span class='varop'>.</span><span class='conid'>Prim</span>	<span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>
+<a name="line-35"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</span>
+<a name="line-36"></a><span class='keyword'>import</span>           <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='comment'>-- No deep meaning just a shortcut notation for a *very* common expression...</span>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='keyword'>infixl</span> <span class='num'>9</span> <span class='varop'>&gt;&lt;</span>
+<a name="line-41"></a>
+<a name="line-42"></a><a name="><"></a><span class='layout'>(</span><span class='varop'>&gt;&lt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-43"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>&gt;&lt;</span> <span class='varid'>node</span>
+<a name="line-44"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>$</span> <span class='varid'>getUriMap</span> <span class='varid'>node</span>
+<a name="line-45"></a>
+<a name="line-46"></a><span class='comment'>-- --------------------------</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="parseExpr"></a><span class='definition'>parseExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>
+<a name="line-49"></a><span class='definition'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>selectStr</span>
+<a name="line-50"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>error</span><span class='varop'>.</span><span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varid'>parseResult</span>                               
+<a name="line-51"></a>    <span class='keyword'>where</span>
+<a name="line-52"></a>    <span class='varid'>parseResult</span> <span class='keyglyph'>=</span> <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varop'>.</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toList</span> <span class='varop'>$</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='layout'>(</span><span class='str'>"select-expr:"</span><span class='varop'>++</span><span class='varid'>selectStr</span><span class='layout'>)</span> <span class='varid'>selectStr</span> 
+<a name="line-53"></a>
+<a name="line-54"></a><a name="parseSelect"></a><span class='definition'>parseSelect</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SelectExpr</span>
+<a name="line-55"></a><span class='definition'>parseSelect</span> <span class='varid'>uris</span>
+<a name="line-56"></a>    <span class='keyglyph'>=</span> <span class='conid'>SelectExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>
+<a name="line-57"></a>
+<a name="line-58"></a><a name="parseTest"></a><span class='definition'>parseTest</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TestExpr</span>
+<a name="line-59"></a><span class='definition'>parseTest</span> <span class='varid'>uris</span>
+<a name="line-60"></a>    <span class='keyglyph'>=</span> <span class='conid'>TestExpr</span> <span class='varop'>.</span> <span class='varid'>mkBoolExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="parseStringExpr"></a><span class='definition'>parseStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StringExpr</span>
+<a name="line-63"></a><span class='definition'>parseStringExpr</span> <span class='varid'>uris</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='conid'>StringExpr</span> <span class='varop'>.</span> <span class='varid'>mkStringExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="parseMatch"></a><span class='definition'>parseMatch</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MatchExpr</span>
+<a name="line-67"></a><span class='definition'>parseMatch</span> <span class='varid'>uris</span> <span class='varid'>str</span>
+<a name="line-68"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isMatchExpr</span> <span class='varid'>expr</span>
+<a name="line-69"></a>      <span class='keyword'>then</span> <span class='conid'>MatchExpr</span> <span class='varid'>expr</span>
+<a name="line-70"></a>      <span class='keyword'>else</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>" is not a legal match-expression"</span>
+<a name="line-71"></a>    <span class='keyword'>where</span> 
+<a name="line-72"></a>    <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>str</span>
+<a name="line-73"></a>
+<a name="line-74"></a><span class='comment'>-- --------------------------</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="parseAVT"></a><span class='definition'>parseAVT</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StringExpr</span>
+<a name="line-77"></a><span class='definition'>parseAVT</span> <span class='varid'>uris</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> 
+<a name="line-78"></a>    <span class='conid'>StringExpr</span> <span class='varop'>$</span> <span class='varid'>concatExpr</span> <span class='varop'>$</span> <span class='varid'>splitAVT</span> <span class='varid'>str</span> <span class='str'>""</span>
+<a name="line-79"></a>  <span class='keyword'>where</span>
+<a name="line-80"></a>
+<a name="line-81"></a>    <span class='varid'>splitAVT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>
+<a name="line-82"></a>    <span class='varid'>splitAVT</span> <span class='str'>""</span>           <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>acc2lit</span> <span class='varid'>acc</span>
+<a name="line-83"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>acc</span>
+<a name="line-84"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='chr'>'}'</span><span class='conop'>:</span><span class='varid'>acc</span>
+<a name="line-85"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>     <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"{}"</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='keyword'>in</span>
+<a name="line-86"></a>                                  <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>head</span> <span class='varid'>rest</span> <span class='varop'>==</span> <span class='chr'>'}'</span>
+<a name="line-87"></a>                                    <span class='keyword'>then</span> <span class='varid'>acc2lit</span> <span class='varid'>acc</span> <span class='varop'>++</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>body</span> <span class='conop'>:</span> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='str'>""</span>
+<a name="line-88"></a>                                    <span class='keyword'>else</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Unterminated expression "</span> <span class='varop'>++</span> <span class='varid'>xs</span> <span class='varop'>++</span> <span class='str'>" in AVT."</span>
+<a name="line-89"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>      <span class='keyword'>_</span>   <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"deserted '}' in AVT."</span>
+<a name="line-90"></a>    <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>       <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='varid'>x</span><span class='conop'>:</span><span class='varid'>acc</span>
+<a name="line-91"></a>
+<a name="line-92"></a>    <span class='varid'>acc2lit</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> 
+<a name="line-93"></a>    <span class='varid'>acc2lit</span> <span class='str'>""</span>  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-94"></a>    <span class='varid'>acc2lit</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkLiteralExpr</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varid'>acc</span><span class='keyglyph'>]</span>
+<a name="line-95"></a>
+<a name="line-96"></a><span class='comment'>-- --------------------------</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="compileComputedQName"></a><span class='comment'>-- extract ComputedQName from "name" and "namespace" AVTs of an xsl:element- or xsl-attribute-node</span>
+<a name="line-99"></a><span class='definition'>compileComputedQName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ComputedQName</span>
+<a name="line-100"></a><span class='definition'>compileComputedQName</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-101"></a>    <span class='layout'>(</span><span class='conid'>CompQName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>nameAVT</span> <span class='varid'>nsAVT</span>
+<a name="line-102"></a>  <span class='keyword'>where</span> 
+<a name="line-103"></a>    <span class='varid'>nameAVT</span>  <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
+<a name="line-104"></a>    <span class='varid'>nsAVT</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltNamespace</span> <span class='str'>""</span>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='comment'>-- --------------------------</span>
+<a name="line-107"></a>
+<a name="line-108"></a><a name="compileComposite"></a><span class='definition'>compileComposite</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-109"></a><span class='definition'>compileComposite</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>compileTemplate</span> <span class='varop'>.</span> <span class='varid'>return</span><span class='layout'>)</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="compileMessage"></a><span class='definition'>compileMessage</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-112"></a><span class='definition'>compileMessage</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplMessage</span> <span class='varid'>halt</span> <span class='varid'>content</span>
+<a name="line-113"></a>  <span class='keyword'>where</span> <span class='varid'>halt</span>     <span class='keyglyph'>=</span> <span class='varid'>termAttr</span> <span class='varop'>==</span> <span class='str'>"yes"</span>
+<a name="line-114"></a>        <span class='varid'>termAttr</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltTerminate</span> <span class='str'>"no"</span>
+<a name="line-115"></a>        <span class='varid'>content</span>  <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="compileForEach"></a><span class='definition'>compileForEach</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-118"></a><span class='definition'>compileForEach</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplForEach</span> <span class='varid'>expr</span> <span class='varid'>sorting</span> <span class='varid'>template</span>
+<a name="line-119"></a>  <span class='keyword'>where</span> <span class='varid'>expr</span>       <span class='keyglyph'>=</span> <span class='varid'>parseSelect</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
+<a name="line-120"></a>        <span class='varid'>sorting</span>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileSortKey</span> <span class='varid'>srt</span>
+<a name="line-121"></a>        <span class='varid'>template</span>   <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>cnt</span>
+<a name="line-122"></a>        <span class='layout'>(</span><span class='varid'>srt</span><span class='layout'>,</span> <span class='varid'>cnt</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltSort</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="compileChoose"></a><span class='definition'>compileChoose</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-125"></a><span class='definition'>compileChoose</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplChoose</span> <span class='varid'>whenParts</span>
+<a name="line-126"></a>  <span class='keyword'>where</span> <span class='varid'>whenParts</span>  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compl</span> <span class='varid'>children</span>
+<a name="line-127"></a>        <span class='varid'>children</span>   <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isElem</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-128"></a>        <span class='varid'>compl</span> <span class='varid'>node'</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node'</span> <span class='keyword'>in</span>
+<a name="line-129"></a>                        <span class='keyword'>if</span>      <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltWhen</span>      <span class='keyword'>then</span> <span class='varid'>compileWhen</span> <span class='varid'>node'</span>
+<a name="line-130"></a>                        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltOtherwise</span> <span class='keyword'>then</span> <span class='varid'>compileOtherwise</span> <span class='varid'>node'</span>
+<a name="line-131"></a>                        <span class='keyword'>else</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"No elements of type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>" allowed within xsl-choose template!"</span><span class='layout'>)</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="compileWhen"></a><span class='definition'>compileWhen</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>When</span>
+<a name="line-134"></a><span class='definition'>compileWhen</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='varid'>expr</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-135"></a>  <span class='keyword'>where</span> <span class='varid'>expr</span>     <span class='keyglyph'>=</span> <span class='varid'>parseTest</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltTest</span>
+<a name="line-136"></a>
+<a name="line-137"></a><a name="compileOtherwise"></a><span class='comment'>-- Otherwise is treated as a when-Part with node-test "true()"</span>
+<a name="line-138"></a><span class='definition'>compileOtherwise</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>When</span>
+<a name="line-139"></a><span class='definition'>compileOtherwise</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='layout'>(</span><span class='conid'>TestExpr</span> <span class='varid'>mkTrueExpr</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="compileIf"></a><span class='comment'>-- "if" is treated as a convenience-form of choose with exactly one "when"-Part</span>
+<a name="line-142"></a><span class='definition'>compileIf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-143"></a><span class='definition'>compileIf</span> <span class='keyglyph'>=</span> <span class='conid'>TemplChoose</span> <span class='varop'>.</span> <span class='varid'>return</span> <span class='varop'>.</span> <span class='varid'>compileWhen</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-146"></a>
+<a name="line-147"></a><a name="parseExNames"></a><span class='definition'>parseExNames</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span>
+<a name="line-148"></a><span class='definition'>parseExNames</span> <span class='varid'>urm</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>parseExName</span> <span class='varid'>urm</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>
+<a name="line-149"></a>
+<a name="line-150"></a><a name="compileElement"></a><span class='definition'>compileElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-151"></a><span class='definition'>compileElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-152"></a>    <span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>attribSets</span> <span class='varid'>template</span>
+<a name="line-153"></a>  <span class='keyword'>where</span> 
+<a name="line-154"></a>    <span class='varid'>compQName</span>   <span class='keyglyph'>=</span> <span class='varid'>compileComputedQName</span> <span class='varid'>node</span>
+<a name="line-155"></a>    <span class='varid'>attribSets</span>  <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>
+<a name="line-156"></a>                  <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>
+<a name="line-157"></a>    <span class='varid'>template</span>    <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-158"></a>
+<a name="line-159"></a><a name="compileAttribute"></a><span class='definition'>compileAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-160"></a><span class='definition'>compileAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-161"></a>    <span class='conid'>TemplAttribute</span> <span class='layout'>(</span><span class='varid'>compileComputedQName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="compileText"></a><span class='comment'>-- compiles xsl:text</span>
+<a name="line-164"></a><span class='definition'>compileText</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-165"></a><span class='definition'>compileText</span> <span class='keyglyph'>=</span> <span class='conid'>TemplText</span> <span class='varop'>.</span> <span class='varid'>collectTextnodes</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="compileTextnode"></a><span class='comment'>-- compiles textNode </span>
+<a name="line-168"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-169"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>=</span> <span class='conid'>TemplText</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getText</span>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="compileValueOf"></a><span class='definition'>compileValueOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-172"></a><span class='definition'>compileValueOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-173"></a>    <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseStringExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="compileComment"></a><span class='definition'>compileComment</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-176"></a><span class='definition'>compileComment</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComment</span> <span class='varop'>.</span> <span class='varid'>compileTemplate</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>
+<a name="line-177"></a>
+<a name="line-178"></a><a name="compileProcInstr"></a><span class='definition'>compileProcInstr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-179"></a><span class='definition'>compileProcInstr</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-180"></a>   <span class='conid'>TemplProcInstr</span> <span class='varid'>name</span> <span class='varid'>content</span>
+<a name="line-181"></a>  <span class='keyword'>where</span>
+<a name="line-182"></a>    <span class='varid'>name</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>  <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
+<a name="line-183"></a>    <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-186"></a>
+<a name="line-187"></a><a name="compileLiteralResultElement"></a><span class='definition'>compileLiteralResultElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-188"></a><span class='definition'>compileLiteralResultElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-189"></a>    <span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='varid'>nsUris</span> <span class='varid'>attribSets</span> <span class='varid'>content</span>
+<a name="line-190"></a>  <span class='keyword'>where</span> 
+<a name="line-191"></a>    <span class='varid'>nsUris</span>             <span class='keyglyph'>=</span> <span class='varid'>extractAddUris</span> <span class='varid'>node</span>
+<a name="line-192"></a>    <span class='varid'>compQName</span>          <span class='keyglyph'>=</span> <span class='conid'>LiteralQName</span>   <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span>
+<a name="line-193"></a>    <span class='varid'>attribSets</span>         <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>attrSetsStr</span>
+<a name="line-194"></a>    <span class='varid'>attrSetsStr</span>        <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSetsLRE</span> <span class='str'>""</span>
+<a name="line-195"></a>    <span class='varid'>content</span>            <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='varop'>$</span> <span class='varid'>attributes</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>template</span><span class='keyglyph'>]</span>
+<a name="line-196"></a>    <span class='varid'>attributes</span>         <span class='keyglyph'>=</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>compileLREAttribute</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>
+<a name="line-197"></a>    <span class='varid'>template</span>           <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-198"></a>
+<a name="line-199"></a><a name="compileLREAttribute"></a><span class='definition'>compileLREAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Template</span>
+<a name="line-200"></a><span class='definition'>compileLREAttribute</span> <span class='varid'>uris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-201"></a>    <span class='keyword'>if</span> <span class='varid'>isSpecial</span> 
+<a name="line-202"></a>      <span class='keyword'>then</span> <span class='conid'>Nothing</span>
+<a name="line-203"></a>      <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='conid'>TemplAttribute</span> <span class='layout'>(</span><span class='conid'>LiteralQName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>val</span>  
+<a name="line-204"></a>  <span class='keyword'>where</span> 
+<a name="line-205"></a>    <span class='varid'>isSpecial</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>xsltUri</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='keyglyph'>]</span>
+<a name="line-206"></a>    <span class='varid'>name</span>      <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span>
+<a name="line-207"></a>    <span class='varid'>val</span>       <span class='keyglyph'>=</span> <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseAVT</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-208"></a>
+<a name="line-209"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-210"></a>
+<a name="line-211"></a><a name="compileApplyTempl"></a><span class='definition'>compileApplyTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-212"></a><span class='definition'>compileApplyTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-213"></a>    <span class='conid'>TemplApply</span> <span class='varid'>expr</span> <span class='varid'>mode</span> <span class='varid'>args</span> <span class='varid'>sorting</span>
+<a name="line-214"></a>  <span class='keyword'>where</span>
+<a name="line-215"></a>    <span class='varid'>expr</span>    <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseSelect</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
+<a name="line-216"></a>    <span class='varid'>mode</span>    <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMode</span>
+<a name="line-217"></a>    <span class='varid'>args</span>    <span class='keyglyph'>=</span> <span class='varid'>compileVariables</span>          <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltWithParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>par</span>
+<a name="line-218"></a>    <span class='varid'>sorting</span> <span class='keyglyph'>=</span>  <span class='varid'>map</span> <span class='varid'>compileSortKey</span> <span class='varid'>srt</span>
+<a name="line-219"></a>    <span class='layout'>(</span><span class='varid'>srt</span><span class='layout'>,</span><span class='varid'>par</span><span class='layout'>)</span> <span class='keyglyph'>=</span>  <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltSort</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-220"></a>
+<a name="line-221"></a><a name="compileApplyImports"></a><span class='definition'>compileApplyImports</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-222"></a><span class='definition'>compileApplyImports</span> <span class='sel'>_node</span>
+<a name="line-223"></a>    <span class='keyglyph'>=</span> <span class='conid'>TemplApplyImports</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="compileCallTempl"></a><span class='definition'>compileCallTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-226"></a><span class='definition'>compileCallTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-227"></a>    <span class='conid'>TemplCall</span> <span class='varid'>name</span> <span class='varid'>args</span>
+<a name="line-228"></a>  <span class='keyword'>where</span>
+<a name="line-229"></a>    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
+<a name="line-230"></a>    <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='varid'>compileVariables</span>  <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltWithParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-231"></a>
+<a name="line-232"></a><a name="compileTemplVariable"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-233"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>=</span> <span class='conid'>TemplVariable</span> <span class='varop'>.</span> <span class='varid'>compileVariable</span>
+<a name="line-234"></a>
+<a name="line-235"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-236"></a>
+<a name="line-237"></a><a name="compileCopy"></a><span class='definition'>compileCopy</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-238"></a><span class='definition'>compileCopy</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-239"></a>    <span class='conid'>TemplCopy</span> <span class='varid'>attribSets</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-240"></a>  <span class='keyword'>where</span>
+<a name="line-241"></a>    <span class='varid'>attribSets</span>  <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>
+<a name="line-242"></a>
+<a name="line-243"></a><a name="compileCopyOf"></a><span class='definition'>compileCopyOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-244"></a><span class='definition'>compileCopyOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplCopyOf</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>
+<a name="line-245"></a>
+<a name="line-246"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-247"></a>
+<a name="line-248"></a><a name="compileTemplate"></a><span class='definition'>compileTemplate</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>
+<a name="line-249"></a><span class='definition'>compileTemplate</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span>       <span class='keyglyph'>=</span> 
+<a name="line-250"></a>   <span class='keyword'>if</span> <span class='varid'>isElem</span> <span class='varid'>node</span>
+<a name="line-251"></a>   <span class='keyword'>then</span> <span class='keyword'>let</span> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span> <span class='keyword'>in</span>        
+<a name="line-252"></a>        <span class='keyword'>if</span>      <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltMessage</span>        <span class='keyword'>then</span> <span class='varid'>compileMessage</span>       <span class='varid'>node</span>
+<a name="line-253"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltForEach</span>        <span class='keyword'>then</span> <span class='varid'>compileForEach</span>       <span class='varid'>node</span>
+<a name="line-254"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltChoose</span>         <span class='keyword'>then</span> <span class='varid'>compileChoose</span>        <span class='varid'>node</span>   
+<a name="line-255"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltIf</span>             <span class='keyword'>then</span> <span class='varid'>compileIf</span>            <span class='varid'>node</span>
+<a name="line-256"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltElement</span>        <span class='keyword'>then</span> <span class='varid'>compileElement</span>       <span class='varid'>node</span>
+<a name="line-257"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltAttribute</span>      <span class='keyword'>then</span> <span class='varid'>compileAttribute</span>     <span class='varid'>node</span>
+<a name="line-258"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltText</span>           <span class='keyword'>then</span> <span class='varid'>compileText</span>          <span class='varid'>node</span>
+<a name="line-259"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltValueOf</span>        <span class='keyword'>then</span> <span class='varid'>compileValueOf</span>       <span class='varid'>node</span>
+<a name="line-260"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltComment</span>        <span class='keyword'>then</span> <span class='varid'>compileComment</span>       <span class='varid'>node</span>
+<a name="line-261"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltProcInstr</span>      <span class='keyword'>then</span> <span class='varid'>compileProcInstr</span>     <span class='varid'>node</span>
+<a name="line-262"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltApplyTemplates</span> <span class='keyword'>then</span> <span class='varid'>compileApplyTempl</span>    <span class='varid'>node</span>
+<a name="line-263"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltApplyImports</span>   <span class='keyword'>then</span> <span class='varid'>compileApplyImports</span>  <span class='varid'>node</span>
+<a name="line-264"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCallTemplate</span>   <span class='keyword'>then</span> <span class='varid'>compileCallTempl</span>     <span class='varid'>node</span>
+<a name="line-265"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltVariable</span>       <span class='keyword'>then</span> <span class='varid'>compileTemplVariable</span> <span class='varid'>node</span>
+<a name="line-266"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCopy</span>           <span class='keyword'>then</span> <span class='varid'>compileCopy</span>          <span class='varid'>node</span>
+<a name="line-267"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCopyOf</span>         <span class='keyword'>then</span> <span class='varid'>compileCopyOf</span>        <span class='varid'>node</span>
+<a name="line-268"></a>
+<a name="line-269"></a>        <span class='comment'>-- no other xslt elements allowed here:</span>
+<a name="line-270"></a>        <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span> <span class='varop'>==</span> <span class='varid'>xsltUri</span>
+<a name="line-271"></a>        <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"xslt-element "</span> <span class='varop'>++</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>" not allowed within this context."</span>
+<a name="line-272"></a>
+<a name="line-273"></a>        <span class='comment'>-- for now all other elements will be considered as Literal Result Elements</span>
+<a name="line-274"></a>        <span class='keyword'>else</span> <span class='varid'>compileLiteralResultElement</span> <span class='varid'>node</span>
+<a name="line-275"></a>
+<a name="line-276"></a>   <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isText</span> <span class='varid'>node</span> <span class='keyword'>then</span> <span class='varid'>compileTextnode</span> <span class='varid'>node</span>
+<a name="line-277"></a>
+<a name="line-278"></a>   <span class='keyword'>else</span>
+<a name="line-279"></a>       <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Unsupported node-type in xslt sheet: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-280"></a><span class='definition'>compileTemplate</span> <span class='varid'>list</span> <span class='keyglyph'>=</span> <span class='varid'>compileComposite</span> <span class='varid'>list</span>
+<a name="line-281"></a>
 <a name="line-282"></a>
-<a name="line-283"></a>
-<a name="line-284"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-285"></a><span class='comment'>-- Assembling of the entire stylesheet</span>
-<a name="line-286"></a>
-<a name="line-287"></a><a name="assembleStylesheet"></a><span class='definition'>assembleStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>CompiledStylesheet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CompiledStylesheet</span>
-<a name="line-288"></a><span class='definition'>assembleStylesheet</span> <span class='varid'>xslNode</span> <span class='varid'>imports</span> <span class='keyglyph'>=</span>
-<a name="line-289"></a>    <span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='varid'>namedRules</span> <span class='varid'>variables</span> <span class='varid'>attsets</span> <span class='varid'>strips</span> <span class='varid'>aliases</span>
-<a name="line-290"></a>  <span class='keyword'>where</span> 
-<a name="line-291"></a>    <span class='comment'>-- entire contents:</span>
-<a name="line-292"></a>    <span class='layout'>(</span><span class='varid'>namedRules</span><span class='layout'>,</span>    
-<a name="line-293"></a>     <span class='varid'>matchRules</span><span class='layout'>)</span>          <span class='keyglyph'>=</span> <span class='varid'>assembleRules</span> <span class='varid'>ruleElems</span> <span class='varid'>importedMatchRules</span> <span class='varid'>importedNamedRules</span>
-<a name="line-294"></a>    <span class='varid'>variables</span>             <span class='keyglyph'>=</span> <span class='varid'>assembleVariables</span> <span class='varid'>varElems</span> <span class='varid'>importedVariables</span>
-<a name="line-295"></a>    <span class='varid'>attsets</span>               <span class='keyglyph'>=</span> <span class='varid'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='varid'>importedAttribSets</span>
-<a name="line-296"></a>    <span class='varid'>strips</span>                <span class='keyglyph'>=</span> <span class='varid'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='varid'>importedStrips</span>
-<a name="line-297"></a>    <span class='varid'>aliases</span>               <span class='keyglyph'>=</span> <span class='varid'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='varid'>importedAliases</span>
-<a name="line-298"></a>
-<a name="line-299"></a>    <span class='comment'>-- element content:</span>
-<a name="line-300"></a>    <span class='layout'>(</span><span class='varid'>nsAliasElems</span><span class='layout'>,</span> <span class='sel'>_r5</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltNamespaceAlias</span><span class='layout'>)</span> <span class='varid'>r4</span>
-<a name="line-301"></a>    <span class='layout'>(</span><span class='varid'>ruleElems</span><span class='layout'>,</span> <span class='varid'>r4</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltTemplate</span><span class='layout'>)</span> <span class='varid'>r3</span>
-<a name="line-302"></a>    <span class='layout'>(</span><span class='varid'>varElems</span><span class='layout'>,</span> <span class='varid'>r3</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isElemType</span> <span class='varid'>xsltVariable</span> <span class='varid'>node</span> <span class='varop'>||</span> <span class='varid'>isElemType</span> <span class='varid'>xsltParam</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>r2</span>
-<a name="line-303"></a>    <span class='layout'>(</span><span class='varid'>attsetElems</span><span class='layout'>,</span> <span class='varid'>r2</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltAttributeSet</span><span class='layout'>)</span> <span class='varid'>r1</span>
-<a name="line-304"></a>    <span class='layout'>(</span><span class='varid'>preserveElems</span><span class='layout'>,</span> <span class='varid'>r1</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltPreserveSpace</span><span class='layout'>)</span> <span class='varid'>r0</span>
-<a name="line-305"></a>    <span class='layout'>(</span><span class='varid'>stripElems</span><span class='layout'>,</span> <span class='varid'>r0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltStripSpace</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>xslNode</span>
-<a name="line-306"></a>
-<a name="line-307"></a>    <span class='comment'>-- imported stuff:</span>
-<a name="line-308"></a>    <span class='varid'>importedAttribSets</span>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getAttributeSets</span> <span class='varid'>imports</span>
-<a name="line-309"></a>    <span class='varid'>importedVariables</span>     <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getVariables</span> <span class='varid'>revImports</span>
-<a name="line-310"></a>    <span class='varid'>importedNamedRules</span>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getNamedRules</span> <span class='varid'>revImports</span>
-<a name="line-311"></a>    <span class='varid'>importedMatchRules</span>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>getMatchRules</span> <span class='varid'>revImports</span>
-<a name="line-312"></a>    <span class='varid'>importedStrips</span>        <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>getStrips</span> <span class='varid'>revImports</span>
-<a name="line-313"></a>    <span class='varid'>importedAliases</span>       <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getAliases</span> <span class='varid'>revImports</span>
-<a name="line-314"></a>    <span class='varid'>revImports</span>            <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varid'>imports</span>
-<a name="line-315"></a>
-<a name="line-316"></a><a name="assembleRules"></a><span class='definition'>assembleRules</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-317"></a><span class='definition'>assembleRules</span> <span class='varid'>nodes</span> <span class='varid'>importedMatches</span> <span class='varid'>importedProcs</span> <span class='keyglyph'>=</span>
-<a name="line-318"></a>    <span class='layout'>(</span><span class='varid'>resProcs</span><span class='layout'>,</span> <span class='varid'>resMatches</span><span class='layout'>)</span>
-<a name="line-319"></a>  <span class='keyword'>where</span>
-<a name="line-320"></a>  
-<a name="line-321"></a>  <span class='comment'>-- matches:  </span>
-<a name="line-322"></a>    <span class='varid'>resMatches</span>       <span class='keyglyph'>=</span> <span class='varid'>localMatches</span> <span class='varop'>++</span> <span class='varid'>importedMatches</span>
-<a name="line-323"></a>    <span class='varid'>localMatches</span>     <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>sortBy</span> <span class='varid'>cmp</span> <span class='varid'>matches</span>
-<a name="line-324"></a>    <span class='varid'>cmp</span> <span class='varid'>rulA</span> <span class='varid'>rulB</span>    <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>getRulePrio</span> <span class='varid'>rulA</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getRulePrio</span> <span class='varid'>rulB</span><span class='layout'>)</span>
-<a name="line-325"></a>
-<a name="line-326"></a>  <span class='comment'>-- procedures:</span>
-<a name="line-327"></a>    <span class='varid'>resProcs</span>         <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='layout'>(</span><span class='varid'>localProcs</span><span class='conop'>:</span><span class='varid'>importedProcs</span><span class='layout'>)</span>
-<a name="line-328"></a>    <span class='varid'>localProcs</span>       <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>ins</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>procs</span>
-<a name="line-329"></a>    <span class='varid'>ins</span> <span class='varid'>map'</span> <span class='varid'>rule</span>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"named-rule "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getRuleName</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" is already defined on this level"</span><span class='layout'>)</span>
-<a name="line-330"></a>                                     <span class='layout'>(</span><span class='varid'>getRuleName</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varid'>rule</span> <span class='varid'>map'</span>
-<a name="line-331"></a>
-<a name="line-332"></a>  <span class='comment'>-- compile all xsl:template's:</span>
-<a name="line-333"></a>    <span class='layout'>(</span><span class='varid'>procs</span><span class='layout'>,</span> <span class='varid'>matches</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>catMaybes</span> <span class='varop'>***</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>unzip</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>compileRule</span> <span class='varid'>importedMatches</span><span class='layout'>)</span> <span class='varid'>nodes</span>
-<a name="line-334"></a>
-<a name="line-335"></a><a name="assembleVariables"></a><span class='definition'>assembleVariables</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span>       
-<a name="line-336"></a><span class='definition'>assembleVariables</span> <span class='varid'>varElems</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>compileVariables</span> <span class='varid'>varElems</span><span class='conop'>:</span><span class='layout'>)</span>
-<a name="line-337"></a>
-<a name="line-338"></a><a name="assembleAttrSets"></a><span class='definition'>assembleAttrSets</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span>
-<a name="line-339"></a><span class='definition'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='keyglyph'>=</span>
-<a name="line-340"></a>    <span class='varid'>foldr</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unionWith</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>localAttribSets</span>
-<a name="line-341"></a>  <span class='keyword'>where</span>
-<a name="line-342"></a>    <span class='varid'>localAttribSets</span>       <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>insertAs</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>
-<a name="line-343"></a>                            <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>compileAttributeSet</span> <span class='varid'>attsetElems</span>
-<a name="line-344"></a>    <span class='varid'>insertAs</span> <span class='keyword'>as</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varid'>name</span> <span class='keyglyph'>[</span><span class='keyword'>as</span><span class='keyglyph'>]</span>
-<a name="line-345"></a>
-<a name="line-346"></a><a name="assembleStrips"></a><span class='definition'>assembleStrips</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>
-<a name="line-347"></a><span class='definition'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='keyglyph'>=</span>
-<a name="line-348"></a>    <span class='layout'>(</span><span class='varid'>localStrips</span> <span class='conop'>:</span><span class='layout'>)</span>
-<a name="line-349"></a>  <span class='keyword'>where</span>
-<a name="line-350"></a>    <span class='varid'>localStrips</span> <span class='keyglyph'>=</span> <span class='varid'>feedStrips</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>compileStrips</span> <span class='varid'>stripElems</span><span class='layout'>)</span>
-<a name="line-351"></a>                  <span class='varop'>$</span> <span class='varid'>feedPreserves</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>compilePreserves</span> <span class='varid'>preserveElems</span><span class='layout'>)</span>
-<a name="line-352"></a>                  <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>
-<a name="line-353"></a>
-<a name="line-354"></a><a name="assembleAliases"></a><span class='definition'>assembleAliases</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NSAliasing</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</span>
-<a name="line-355"></a><span class='definition'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='keyglyph'>=</span>
-<a name="line-356"></a>    <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>localAliases</span><span class='conop'>:</span><span class='layout'>)</span>
-<a name="line-357"></a>  <span class='keyword'>where</span>
-<a name="line-358"></a>    <span class='varid'>localAliases</span>          <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>addAlias'</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>nsAliasElems</span>
-<a name="line-359"></a>    <span class='varid'>addAlias'</span> <span class='varid'>node</span>        <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>addAlias</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileAlias</span> <span class='varid'>node</span>
-<a name="line-360"></a>
-<a name="line-361"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-362"></a>
-<a name="line-363"></a><a name="compileRule"></a><span class='comment'>-- compile a rule from an xsl:template element.</span>
-<a name="line-364"></a><span class='comment'>-- The resulting rule can either be a one or more match rule or a named rule, or both.</span>
-<a name="line-365"></a><span class='comment'>-- The first argument is needed for xsl:apply-imports and contains</span>
-<a name="line-366"></a><span class='comment'>-- a list of all subsequently imported rules</span>
-<a name="line-367"></a><span class='definition'>compileRule</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>NamedRule</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span><span class='layout'>)</span>
-<a name="line-368"></a><span class='definition'>compileRule</span> <span class='varid'>imports</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-369"></a>
-<a name="line-370"></a>    <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>name</span> 
-<a name="line-371"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus rule (xsl:template) with neither match nor name attribute is illegal"</span>
-<a name="line-372"></a>
-<a name="line-373"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>mode</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> 
-<a name="line-374"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus mode attribute on none-match rule is illegal"</span>
-<a name="line-375"></a>
-<a name="line-376"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>priority</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> 
-<a name="line-377"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus priority attribute on none-match rule is illegal"</span>
-<a name="line-378"></a>
-<a name="line-379"></a>    <span class='keyword'>else</span> 
-<a name="line-380"></a>      <span class='layout'>(</span>
-<a name="line-381"></a>        <span class='varid'>liftM</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NamRule</span> <span class='varid'>n</span> <span class='varid'>params</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>name</span>
-<a name="line-382"></a>      <span class='layout'>,</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>maybeToList</span> <span class='varop'>$</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>assembleMatchRule</span> <span class='varid'>priority</span> <span class='varid'>mode</span> <span class='varid'>imports</span> <span class='varid'>params</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>match</span>
-<a name="line-383"></a>      <span class='layout'>)</span> 
-<a name="line-384"></a>
-<a name="line-385"></a>  <span class='keyword'>where</span>
-<a name="line-386"></a>    <span class='varid'>match</span>      <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseMatch</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span>  <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMatch</span>
-<a name="line-387"></a>    <span class='varid'>name</span>       <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
-<a name="line-388"></a>    <span class='varid'>priority</span>   <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='varid'>read</span>                <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltPriority</span>
-<a name="line-389"></a>    <span class='varid'>mode</span>       <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMode</span>
-<a name="line-390"></a>    <span class='varid'>template</span>   <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>content</span>
-<a name="line-391"></a>    <span class='varid'>params</span>     <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileVariable</span> <span class='varid'>paramsXml</span>
-<a name="line-392"></a>    <span class='layout'>(</span><span class='varid'>paramsXml</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='keyglyph'>=</span>
-<a name="line-393"></a>                  <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-394"></a>
-<a name="line-395"></a><a name="assembleMatchRule"></a><span class='definition'>assembleMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>Float</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>MatchExpr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>
-<a name="line-396"></a><span class='definition'>assembleMatchRule</span> <span class='varid'>pri</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span> <span class='varid'>mtch</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span>
-<a name="line-397"></a>    <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>pri</span>
-<a name="line-398"></a>    <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>MatRule</span> <span class='varid'>mtch</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>pri</span><span class='layout'>)</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span>
-<a name="line-399"></a>    <span class='keyword'>else</span> <span class='varid'>map</span> <span class='varid'>expand</span> <span class='varop'>$</span> <span class='varid'>splitMatchByPrio</span> <span class='varid'>expr</span>
-<a name="line-400"></a>  <span class='keyword'>where</span> 
-<a name="line-401"></a>    <span class='varid'>expand</span> <span class='layout'>(</span><span class='varid'>pri'</span><span class='layout'>,</span> <span class='varid'>mtch'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>MatRule</span> <span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>mtch'</span><span class='layout'>)</span> <span class='varid'>pri'</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span>
-<a name="line-402"></a>
-<a name="line-403"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-404"></a>
-<a name="line-405"></a><a name="compileVariables"></a><span class='definition'>compileVariables</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span>
-<a name="line-406"></a><span class='definition'>compileVariables</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span>
-<a name="line-407"></a>    <span class='varid'>foldl</span> <span class='varid'>insertVar</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varop'>$</span> <span class='varid'>varList</span>
-<a name="line-408"></a>  <span class='keyword'>where</span>
-<a name="line-409"></a>    <span class='varid'>varList</span>               <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileVariable</span> <span class='varop'>$</span> <span class='varid'>nodes</span>
-<a name="line-410"></a>    <span class='varid'>insertVar</span> <span class='varid'>map'</span> <span class='varid'>var</span>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"parameter or variable "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getVarName</span> <span class='varid'>var</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" is already defined on this level"</span><span class='layout'>)</span>
-<a name="line-411"></a>                                           <span class='layout'>(</span><span class='varid'>getVarName</span> <span class='varid'>var</span><span class='layout'>)</span> <span class='varid'>var</span> <span class='varid'>map'</span>
-<a name="line-412"></a>
-<a name="line-413"></a><a name="compileVariable"></a><span class='definition'>compileVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Variable</span>
-<a name="line-414"></a><span class='definition'>compileVariable</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-415"></a>    <span class='conid'>MkVar</span> <span class='varid'>modus</span> <span class='varid'>name</span> <span class='varid'>exprOrRtf</span>
-<a name="line-416"></a>  <span class='keyword'>where</span> 
-<a name="line-417"></a>    <span class='varid'>modus</span>     <span class='keyglyph'>=</span> <span class='varid'>isElemType</span> <span class='varid'>xsltParam</span> <span class='varid'>node</span>
-<a name="line-418"></a>    <span class='varid'>name</span>      <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
-<a name="line-419"></a>    <span class='varid'>exprOrRtf</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>hasAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='varop'>||</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-420"></a>                <span class='keyword'>then</span> <span class='conid'>Left</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='str'>"''"</span>
-<a name="line-421"></a>                <span class='keyword'>else</span> <span class='conid'>Right</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-422"></a>
-<a name="line-423"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-424"></a>
-<a name="line-425"></a><a name="compileAttributeSet"></a><span class='definition'>compileAttributeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AttributeSet</span>
-<a name="line-426"></a><span class='definition'>compileAttributeSet</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-427"></a>    <span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='varid'>usedsets</span> <span class='varid'>template</span>
-<a name="line-428"></a>  <span class='keyword'>where</span>
-<a name="line-429"></a>    <span class='varid'>name</span>     <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
-<a name="line-430"></a>    <span class='varid'>usedsets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span>    <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>
-<a name="line-431"></a>    <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span>   <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltAttribute</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
-<a name="line-432"></a>
-<a name="line-433"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-434"></a>
-<a name="line-435"></a><a name="compileSortKey"></a><span class='definition'>compileSortKey</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SortKey</span>
-<a name="line-436"></a><span class='definition'>compileSortKey</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
-<a name="line-437"></a>    <span class='conid'>SortK</span> <span class='varid'>expr</span> <span class='varid'>dataType</span> <span class='varid'>order</span>
-<a name="line-438"></a>  <span class='keyword'>where</span>
-<a name="line-439"></a>    <span class='varid'>expr</span>     <span class='keyglyph'>=</span> <span class='varid'>parseStringExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='str'>"."</span>
-<a name="line-440"></a>    <span class='varid'>dataType</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>        <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltDataType</span> <span class='str'>"text"</span>
-<a name="line-441"></a>    <span class='varid'>order</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>        <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltOrder</span> <span class='str'>"ascending"</span>
-<a name="line-442"></a>
-<a name="line-443"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-444"></a>
-<a name="line-445"></a><a name="parseNTests"></a><span class='definition'>parseNTests</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>
-<a name="line-446"></a><span class='definition'>parseNTests</span> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>parseNTest</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>
-<a name="line-447"></a>
-<a name="line-448"></a><a name="compileStrips"></a><span class='definition'>compileStrips</span><span class='layout'>,</span><span class='varid'>compilePreserves</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>
-<a name="line-449"></a><span class='definition'>compileStrips</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>parseNTests</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltElements</span>
-<a name="line-450"></a><a name="compilePreserves"></a><span class='definition'>compilePreserves</span> <span class='keyglyph'>=</span> <span class='varid'>compileStrips</span>
-<a name="line-451"></a>
-<a name="line-452"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-453"></a>
-<a name="line-454"></a><a name="compileAlias"></a><span class='definition'>compileAlias</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
-<a name="line-455"></a><span class='definition'>compileAlias</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-456"></a>  <span class='layout'>(</span><span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltStylesheetPrefix</span><span class='layout'>,</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltResultPrefix</span><span class='layout'>)</span>
-<a name="line-457"></a>
-<a name="line-458"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-459"></a><span class='comment'>-- Document level preprocessing</span>
-<a name="line-460"></a>
-<a name="line-461"></a><a name="prepareXSLTDocument"></a><span class='definition'>prepareXSLTDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-462"></a><span class='definition'>prepareXSLTDocument</span>	<span class='keyglyph'>=</span> <span class='varid'>expandExEx</span> <span class='varop'>.</span> <span class='varid'>expandNSDecls</span> <span class='varop'>.</span> <span class='varid'>stripStylesheet</span> <span class='varop'>.</span> <span class='varid'>removePiCmt</span>
-<a name="line-463"></a>
-<a name="line-464"></a><a name="removePiCmt"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-465"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>=</span> <span class='varid'>fromJustErr</span> <span class='str'>"XSLT: No root element"</span> <span class='varop'>.</span> <span class='varid'>filterTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isPi</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isCmt</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
-<a name="line-466"></a>
-<a name="line-467"></a><span class='comment'>-- Expand exclude-result-prefixes AND extension-element-prefixes</span>
-<a name="line-468"></a>
-<a name="line-469"></a><a name="expandExEx"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
-<a name="line-470"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>=</span> <span class='varid'>mapTreeCtx</span> <span class='varid'>expandExExElem</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>xsltUri</span><span class='layout'>,</span><span class='varid'>xmlNamespace</span><span class='layout'>,</span><span class='varid'>xmlnsNamespace</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>
-<a name="line-471"></a>
-<a name="line-472"></a><a name="expandExExElem"></a><span class='definition'>expandExExElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>
-<a name="line-473"></a><span class='definition'>expandExExElem</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>excl</span><span class='layout'>,</span> <span class='varid'>ext</span><span class='layout'>)</span> <span class='varid'>node</span>
-<a name="line-474"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>exclAcc</span><span class='layout'>,</span> <span class='varid'>extAcc</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>nodeNew</span><span class='layout'>)</span>
-<a name="line-475"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>
-<a name="line-476"></a>  <span class='keyword'>where</span>
-<a name="line-477"></a>    <span class='varid'>nodeNew</span>    <span class='keyglyph'>=</span> <span class='varid'>setAttribute</span> <span class='varid'>nameExcl</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>exclAcc</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>setAttribute</span> <span class='varid'>nameExt</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>extAcc</span><span class='layout'>)</span> <span class='varid'>node</span>
-<a name="line-478"></a>    <span class='varid'>exclAcc</span>    <span class='keyglyph'>=</span> <span class='varid'>exclNew</span> <span class='varop'>++</span> <span class='varid'>excl</span>
-<a name="line-479"></a>    <span class='varid'>extAcc</span>     <span class='keyglyph'>=</span> <span class='varid'>extNew</span>  <span class='varop'>++</span> <span class='varid'>ext</span>
-<a name="line-480"></a>    <span class='varid'>exclNew</span>    <span class='keyglyph'>=</span> <span class='varid'>extNew</span>  <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>parsePreList</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>nameExcl</span> <span class='str'>""</span><span class='layout'>)</span>
-<a name="line-481"></a>    <span class='varid'>extNew</span>     <span class='keyglyph'>=</span>             <span class='varid'>parsePreList</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>nameExt</span>  <span class='str'>""</span>
-<a name="line-482"></a>    <span class='layout'>(</span><span class='varid'>nameExcl</span><span class='layout'>,</span>
-<a name="line-483"></a>     <span class='varid'>nameExt</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>xsltUri</span>
-<a name="line-484"></a>                   <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>xsltExlcudeResultPrefixes</span>   <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixes</span>   <span class='layout'>)</span>
-<a name="line-485"></a>                   <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>xsltExlcudeResultPrefixesLRE</span><span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixesLRE</span><span class='layout'>)</span>
-<a name="line-486"></a>
-<a name="line-487"></a><span class='comment'>-- parse a prefix list, create a list of uris: </span>
-<a name="line-488"></a><span class='comment'>-- "pre1 pre2 pre3" -&gt; ["pre1.uri","pre2.uri","pre3.uri"]</span>
-<a name="line-489"></a>
-<a name="line-490"></a><a name="parsePreList"></a><span class='definition'>parsePreList</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
-<a name="line-491"></a><span class='definition'>parsePreList</span> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>lookupPrefix</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>
-<a name="line-492"></a>
-<a name="line-493"></a><span class='comment'>-- -----------------------------------</span>
-<a name="line-494"></a><span class='comment'>-- Extraction of contextual Information from an XML-Node</span>
-<a name="line-495"></a>
-<a name="line-496"></a><a name="extractAddUris"></a><span class='definition'>extractAddUris</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
-<a name="line-497"></a><span class='definition'>extractAddUris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
-<a name="line-498"></a>    <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>exclUris</span><span class='layout'>)</span><span class='layout'>)</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>
-<a name="line-499"></a>  <span class='keyword'>where</span>
-<a name="line-500"></a>    <span class='varid'>exclUris</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltExlcudeResultPrefixesLRE</span> <span class='str'>""</span>
-<a name="line-501"></a>
-<a name="line-502"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-283"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-284"></a><span class='comment'>-- Assembling of the entire stylesheet</span>
+<a name="line-285"></a>
+<a name="line-286"></a><a name="assembleStylesheet"></a><span class='definition'>assembleStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>CompiledStylesheet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-287"></a><span class='definition'>assembleStylesheet</span> <span class='varid'>xslNode</span> <span class='varid'>imports</span> <span class='keyglyph'>=</span>
+<a name="line-288"></a>    <span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='varid'>namedRules</span> <span class='varid'>variables</span> <span class='varid'>attsets</span> <span class='varid'>strips</span> <span class='varid'>aliases</span>
+<a name="line-289"></a>  <span class='keyword'>where</span> 
+<a name="line-290"></a>    <span class='comment'>-- entire contents:</span>
+<a name="line-291"></a>    <span class='layout'>(</span><span class='varid'>namedRules</span><span class='layout'>,</span>    
+<a name="line-292"></a>     <span class='varid'>matchRules</span><span class='layout'>)</span>          <span class='keyglyph'>=</span> <span class='varid'>assembleRules</span> <span class='varid'>ruleElems</span> <span class='varid'>importedMatchRules</span> <span class='varid'>importedNamedRules</span>
+<a name="line-293"></a>    <span class='varid'>variables</span>             <span class='keyglyph'>=</span> <span class='varid'>assembleVariables</span> <span class='varid'>varElems</span> <span class='varid'>importedVariables</span>
+<a name="line-294"></a>    <span class='varid'>attsets</span>               <span class='keyglyph'>=</span> <span class='varid'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='varid'>importedAttribSets</span>
+<a name="line-295"></a>    <span class='varid'>strips</span>                <span class='keyglyph'>=</span> <span class='varid'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='varid'>importedStrips</span>
+<a name="line-296"></a>    <span class='varid'>aliases</span>               <span class='keyglyph'>=</span> <span class='varid'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='varid'>importedAliases</span>
+<a name="line-297"></a>
+<a name="line-298"></a>    <span class='comment'>-- element content:</span>
+<a name="line-299"></a>    <span class='layout'>(</span><span class='varid'>nsAliasElems</span><span class='layout'>,</span> <span class='sel'>_r5</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltNamespaceAlias</span><span class='layout'>)</span> <span class='varid'>r4</span>
+<a name="line-300"></a>    <span class='layout'>(</span><span class='varid'>ruleElems</span><span class='layout'>,</span> <span class='varid'>r4</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltTemplate</span><span class='layout'>)</span> <span class='varid'>r3</span>
+<a name="line-301"></a>    <span class='layout'>(</span><span class='varid'>varElems</span><span class='layout'>,</span> <span class='varid'>r3</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isElemType</span> <span class='varid'>xsltVariable</span> <span class='varid'>node</span> <span class='varop'>||</span> <span class='varid'>isElemType</span> <span class='varid'>xsltParam</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>r2</span>
+<a name="line-302"></a>    <span class='layout'>(</span><span class='varid'>attsetElems</span><span class='layout'>,</span> <span class='varid'>r2</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltAttributeSet</span><span class='layout'>)</span> <span class='varid'>r1</span>
+<a name="line-303"></a>    <span class='layout'>(</span><span class='varid'>preserveElems</span><span class='layout'>,</span> <span class='varid'>r1</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltPreserveSpace</span><span class='layout'>)</span> <span class='varid'>r0</span>
+<a name="line-304"></a>    <span class='layout'>(</span><span class='varid'>stripElems</span><span class='layout'>,</span> <span class='varid'>r0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltStripSpace</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>xslNode</span>
+<a name="line-305"></a>
+<a name="line-306"></a>    <span class='comment'>-- imported stuff:</span>
+<a name="line-307"></a>    <span class='varid'>importedAttribSets</span>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getAttributeSets</span> <span class='varid'>imports</span>
+<a name="line-308"></a>    <span class='varid'>importedVariables</span>     <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getVariables</span> <span class='varid'>revImports</span>
+<a name="line-309"></a>    <span class='varid'>importedNamedRules</span>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getNamedRules</span> <span class='varid'>revImports</span>
+<a name="line-310"></a>    <span class='varid'>importedMatchRules</span>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>getMatchRules</span> <span class='varid'>revImports</span>
+<a name="line-311"></a>    <span class='varid'>importedStrips</span>        <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>getStrips</span> <span class='varid'>revImports</span>
+<a name="line-312"></a>    <span class='varid'>importedAliases</span>       <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getAliases</span> <span class='varid'>revImports</span>
+<a name="line-313"></a>    <span class='varid'>revImports</span>            <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varid'>imports</span>
+<a name="line-314"></a>
+<a name="line-315"></a><a name="assembleRules"></a><span class='definition'>assembleRules</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-316"></a><span class='definition'>assembleRules</span> <span class='varid'>nodes</span> <span class='varid'>importedMatches</span> <span class='varid'>importedProcs</span> <span class='keyglyph'>=</span>
+<a name="line-317"></a>    <span class='layout'>(</span><span class='varid'>resProcs</span><span class='layout'>,</span> <span class='varid'>resMatches</span><span class='layout'>)</span>
+<a name="line-318"></a>  <span class='keyword'>where</span>
+<a name="line-319"></a>  
+<a name="line-320"></a>  <span class='comment'>-- matches:  </span>
+<a name="line-321"></a>    <span class='varid'>resMatches</span>       <span class='keyglyph'>=</span> <span class='varid'>localMatches</span> <span class='varop'>++</span> <span class='varid'>importedMatches</span>
+<a name="line-322"></a>    <span class='varid'>localMatches</span>     <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>sortBy</span> <span class='varid'>cmp</span> <span class='varid'>matches</span>
+<a name="line-323"></a>    <span class='varid'>cmp</span> <span class='varid'>rulA</span> <span class='varid'>rulB</span>    <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>getRulePrio</span> <span class='varid'>rulA</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getRulePrio</span> <span class='varid'>rulB</span><span class='layout'>)</span>
+<a name="line-324"></a>
+<a name="line-325"></a>  <span class='comment'>-- procedures:</span>
+<a name="line-326"></a>    <span class='varid'>resProcs</span>         <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='layout'>(</span><span class='varid'>localProcs</span><span class='conop'>:</span><span class='varid'>importedProcs</span><span class='layout'>)</span>
+<a name="line-327"></a>    <span class='varid'>localProcs</span>       <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>ins</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>procs</span>
+<a name="line-328"></a>    <span class='varid'>ins</span> <span class='varid'>map'</span> <span class='varid'>rule</span>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"named-rule "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getRuleName</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" is already defined on this level"</span><span class='layout'>)</span>
+<a name="line-329"></a>                                     <span class='layout'>(</span><span class='varid'>getRuleName</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varid'>rule</span> <span class='varid'>map'</span>
+<a name="line-330"></a>
+<a name="line-331"></a>  <span class='comment'>-- compile all xsl:template's:</span>
+<a name="line-332"></a>    <span class='layout'>(</span><span class='varid'>procs</span><span class='layout'>,</span> <span class='varid'>matches</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>catMaybes</span> <span class='varop'>***</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>unzip</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>compileRule</span> <span class='varid'>importedMatches</span><span class='layout'>)</span> <span class='varid'>nodes</span>
+<a name="line-333"></a>
+<a name="line-334"></a><a name="assembleVariables"></a><span class='definition'>assembleVariables</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span>       
+<a name="line-335"></a><span class='definition'>assembleVariables</span> <span class='varid'>varElems</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>compileVariables</span> <span class='varid'>varElems</span><span class='conop'>:</span><span class='layout'>)</span>
+<a name="line-336"></a>
+<a name="line-337"></a><a name="assembleAttrSets"></a><span class='definition'>assembleAttrSets</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span>
+<a name="line-338"></a><span class='definition'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='keyglyph'>=</span>
+<a name="line-339"></a>    <span class='varid'>foldr</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unionWith</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>localAttribSets</span>
+<a name="line-340"></a>  <span class='keyword'>where</span>
+<a name="line-341"></a>    <span class='varid'>localAttribSets</span>       <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>insertAs</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-342"></a>                            <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>compileAttributeSet</span> <span class='varid'>attsetElems</span>
+<a name="line-343"></a>    <span class='varid'>insertAs</span> <span class='keyword'>as</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varid'>name</span> <span class='keyglyph'>[</span><span class='keyword'>as</span><span class='keyglyph'>]</span>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="assembleStrips"></a><span class='definition'>assembleStrips</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>
+<a name="line-346"></a><span class='definition'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='keyglyph'>=</span>
+<a name="line-347"></a>    <span class='layout'>(</span><span class='varid'>localStrips</span> <span class='conop'>:</span><span class='layout'>)</span>
+<a name="line-348"></a>  <span class='keyword'>where</span>
+<a name="line-349"></a>    <span class='varid'>localStrips</span> <span class='keyglyph'>=</span> <span class='varid'>feedStrips</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>compileStrips</span> <span class='varid'>stripElems</span><span class='layout'>)</span>
+<a name="line-350"></a>                  <span class='varop'>$</span> <span class='varid'>feedPreserves</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>compilePreserves</span> <span class='varid'>preserveElems</span><span class='layout'>)</span>
+<a name="line-351"></a>                  <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-352"></a>
+<a name="line-353"></a><a name="assembleAliases"></a><span class='definition'>assembleAliases</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NSAliasing</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</span>
+<a name="line-354"></a><span class='definition'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='keyglyph'>=</span>
+<a name="line-355"></a>    <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>localAliases</span><span class='conop'>:</span><span class='layout'>)</span>
+<a name="line-356"></a>  <span class='keyword'>where</span>
+<a name="line-357"></a>    <span class='varid'>localAliases</span>          <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>addAlias'</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>nsAliasElems</span>
+<a name="line-358"></a>    <span class='varid'>addAlias'</span> <span class='varid'>node</span>        <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>addAlias</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileAlias</span> <span class='varid'>node</span>
+<a name="line-359"></a>
+<a name="line-360"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-361"></a>
+<a name="line-362"></a><a name="compileRule"></a><span class='comment'>-- compile a rule from an xsl:template element.</span>
+<a name="line-363"></a><span class='comment'>-- The resulting rule can either be a one or more match rule or a named rule, or both.</span>
+<a name="line-364"></a><span class='comment'>-- The first argument is needed for xsl:apply-imports and contains</span>
+<a name="line-365"></a><span class='comment'>-- a list of all subsequently imported rules</span>
+<a name="line-366"></a><span class='definition'>compileRule</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>NamedRule</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-367"></a><span class='definition'>compileRule</span> <span class='varid'>imports</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-368"></a>
+<a name="line-369"></a>    <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>name</span> 
+<a name="line-370"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus rule (xsl:template) with neither match nor name attribute is illegal"</span>
+<a name="line-371"></a>
+<a name="line-372"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>mode</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> 
+<a name="line-373"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus mode attribute on none-match rule is illegal"</span>
+<a name="line-374"></a>
+<a name="line-375"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>priority</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> 
+<a name="line-376"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus priority attribute on none-match rule is illegal"</span>
+<a name="line-377"></a>
+<a name="line-378"></a>    <span class='keyword'>else</span> 
+<a name="line-379"></a>      <span class='layout'>(</span>
+<a name="line-380"></a>        <span class='varid'>liftM</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NamRule</span> <span class='varid'>n</span> <span class='varid'>params</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>name</span>
+<a name="line-381"></a>      <span class='layout'>,</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>maybeToList</span> <span class='varop'>$</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>assembleMatchRule</span> <span class='varid'>priority</span> <span class='varid'>mode</span> <span class='varid'>imports</span> <span class='varid'>params</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>match</span>
+<a name="line-382"></a>      <span class='layout'>)</span> 
+<a name="line-383"></a>
+<a name="line-384"></a>  <span class='keyword'>where</span>
+<a name="line-385"></a>    <span class='varid'>match</span>      <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseMatch</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span>  <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMatch</span>
+<a name="line-386"></a>    <span class='varid'>name</span>       <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
+<a name="line-387"></a>    <span class='varid'>priority</span>   <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='varid'>read</span>                <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltPriority</span>
+<a name="line-388"></a>    <span class='varid'>mode</span>       <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMode</span>
+<a name="line-389"></a>    <span class='varid'>template</span>   <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>content</span>
+<a name="line-390"></a>    <span class='varid'>params</span>     <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileVariable</span> <span class='varid'>paramsXml</span>
+<a name="line-391"></a>    <span class='layout'>(</span><span class='varid'>paramsXml</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='keyglyph'>=</span>
+<a name="line-392"></a>                  <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-393"></a>
+<a name="line-394"></a><a name="assembleMatchRule"></a><span class='definition'>assembleMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>Float</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>MatchExpr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>
+<a name="line-395"></a><span class='definition'>assembleMatchRule</span> <span class='varid'>pri</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span> <span class='varid'>mtch</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span>
+<a name="line-396"></a>    <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>pri</span>
+<a name="line-397"></a>    <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>MatRule</span> <span class='varid'>mtch</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>pri</span><span class='layout'>)</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span>
+<a name="line-398"></a>    <span class='keyword'>else</span> <span class='varid'>map</span> <span class='varid'>expand</span> <span class='varop'>$</span> <span class='varid'>splitMatchByPrio</span> <span class='varid'>expr</span>
+<a name="line-399"></a>  <span class='keyword'>where</span> 
+<a name="line-400"></a>    <span class='varid'>expand</span> <span class='layout'>(</span><span class='varid'>pri'</span><span class='layout'>,</span> <span class='varid'>mtch'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>MatRule</span> <span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>mtch'</span><span class='layout'>)</span> <span class='varid'>pri'</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span>
+<a name="line-401"></a>
+<a name="line-402"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-403"></a>
+<a name="line-404"></a><a name="compileVariables"></a><span class='definition'>compileVariables</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span>
+<a name="line-405"></a><span class='definition'>compileVariables</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span>
+<a name="line-406"></a>    <span class='varid'>foldl</span> <span class='varid'>insertVar</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varop'>$</span> <span class='varid'>varList</span>
+<a name="line-407"></a>  <span class='keyword'>where</span>
+<a name="line-408"></a>    <span class='varid'>varList</span>               <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileVariable</span> <span class='varop'>$</span> <span class='varid'>nodes</span>
+<a name="line-409"></a>    <span class='varid'>insertVar</span> <span class='varid'>map'</span> <span class='varid'>var</span>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"parameter or variable "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getVarName</span> <span class='varid'>var</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" is already defined on this level"</span><span class='layout'>)</span>
+<a name="line-410"></a>                                           <span class='layout'>(</span><span class='varid'>getVarName</span> <span class='varid'>var</span><span class='layout'>)</span> <span class='varid'>var</span> <span class='varid'>map'</span>
+<a name="line-411"></a>
+<a name="line-412"></a><a name="compileVariable"></a><span class='definition'>compileVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Variable</span>
+<a name="line-413"></a><span class='definition'>compileVariable</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-414"></a>    <span class='conid'>MkVar</span> <span class='varid'>modus</span> <span class='varid'>name</span> <span class='varid'>exprOrRtf</span>
+<a name="line-415"></a>  <span class='keyword'>where</span> 
+<a name="line-416"></a>    <span class='varid'>modus</span>     <span class='keyglyph'>=</span> <span class='varid'>isElemType</span> <span class='varid'>xsltParam</span> <span class='varid'>node</span>
+<a name="line-417"></a>    <span class='varid'>name</span>      <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
+<a name="line-418"></a>    <span class='varid'>exprOrRtf</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>hasAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='varop'>||</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-419"></a>                <span class='keyword'>then</span> <span class='conid'>Left</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='str'>"''"</span>
+<a name="line-420"></a>                <span class='keyword'>else</span> <span class='conid'>Right</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-421"></a>
+<a name="line-422"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-423"></a>
+<a name="line-424"></a><a name="compileAttributeSet"></a><span class='definition'>compileAttributeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AttributeSet</span>
+<a name="line-425"></a><span class='definition'>compileAttributeSet</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-426"></a>    <span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='varid'>usedsets</span> <span class='varid'>template</span>
+<a name="line-427"></a>  <span class='keyword'>where</span>
+<a name="line-428"></a>    <span class='varid'>name</span>     <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>
+<a name="line-429"></a>    <span class='varid'>usedsets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span>    <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>
+<a name="line-430"></a>    <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span>   <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltAttribute</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-431"></a>
+<a name="line-432"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-433"></a>
+<a name="line-434"></a><a name="compileSortKey"></a><span class='definition'>compileSortKey</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SortKey</span>
+<a name="line-435"></a><span class='definition'>compileSortKey</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>
+<a name="line-436"></a>    <span class='conid'>SortK</span> <span class='varid'>expr</span> <span class='varid'>dataType</span> <span class='varid'>order</span>
+<a name="line-437"></a>  <span class='keyword'>where</span>
+<a name="line-438"></a>    <span class='varid'>expr</span>     <span class='keyglyph'>=</span> <span class='varid'>parseStringExpr</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='str'>"."</span>
+<a name="line-439"></a>    <span class='varid'>dataType</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>        <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltDataType</span> <span class='str'>"text"</span>
+<a name="line-440"></a>    <span class='varid'>order</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>        <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltOrder</span> <span class='str'>"ascending"</span>
+<a name="line-441"></a>
+<a name="line-442"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-443"></a>
+<a name="line-444"></a><a name="parseNTests"></a><span class='definition'>parseNTests</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>
+<a name="line-445"></a><span class='definition'>parseNTests</span> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>parseNTest</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>
+<a name="line-446"></a>
+<a name="line-447"></a><a name="compileStrips"></a><span class='definition'>compileStrips</span><span class='layout'>,</span><span class='varid'>compilePreserves</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>
+<a name="line-448"></a><span class='definition'>compileStrips</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>parseNTests</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltElements</span>
+<a name="line-449"></a><a name="compilePreserves"></a><span class='definition'>compilePreserves</span> <span class='keyglyph'>=</span> <span class='varid'>compileStrips</span>
+<a name="line-450"></a>
+<a name="line-451"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-452"></a>
+<a name="line-453"></a><a name="compileAlias"></a><span class='definition'>compileAlias</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-454"></a><span class='definition'>compileAlias</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-455"></a>  <span class='layout'>(</span><span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltStylesheetPrefix</span><span class='layout'>,</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltResultPrefix</span><span class='layout'>)</span>
+<a name="line-456"></a>
+<a name="line-457"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-458"></a><span class='comment'>-- Document level preprocessing</span>
+<a name="line-459"></a>
+<a name="line-460"></a><a name="prepareXSLTDocument"></a><span class='definition'>prepareXSLTDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-461"></a><span class='definition'>prepareXSLTDocument</span>	<span class='keyglyph'>=</span> <span class='varid'>expandExEx</span> <span class='varop'>.</span> <span class='varid'>expandNSDecls</span> <span class='varop'>.</span> <span class='varid'>stripStylesheet</span> <span class='varop'>.</span> <span class='varid'>removePiCmt</span>
+<a name="line-462"></a>
+<a name="line-463"></a><a name="removePiCmt"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-464"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>=</span> <span class='varid'>fromJustErr</span> <span class='str'>"XSLT: No root element"</span> <span class='varop'>.</span> <span class='varid'>filterTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isPi</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isCmt</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-465"></a>
+<a name="line-466"></a><span class='comment'>-- Expand exclude-result-prefixes AND extension-element-prefixes</span>
+<a name="line-467"></a>
+<a name="line-468"></a><a name="expandExEx"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-469"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>=</span> <span class='varid'>mapTreeCtx</span> <span class='varid'>expandExExElem</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>xsltUri</span><span class='layout'>,</span><span class='varid'>xmlNamespace</span><span class='layout'>,</span><span class='varid'>xmlnsNamespace</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-470"></a>
+<a name="line-471"></a><a name="expandExExElem"></a><span class='definition'>expandExExElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>
+<a name="line-472"></a><span class='definition'>expandExExElem</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>excl</span><span class='layout'>,</span> <span class='varid'>ext</span><span class='layout'>)</span> <span class='varid'>node</span>
+<a name="line-473"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>exclAcc</span><span class='layout'>,</span> <span class='varid'>extAcc</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>nodeNew</span><span class='layout'>)</span>
+<a name="line-474"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-475"></a>  <span class='keyword'>where</span>
+<a name="line-476"></a>    <span class='varid'>nodeNew</span>    <span class='keyglyph'>=</span> <span class='varid'>setAttribute</span> <span class='varid'>nameExcl</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>exclAcc</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>setAttribute</span> <span class='varid'>nameExt</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>extAcc</span><span class='layout'>)</span> <span class='varid'>node</span>
+<a name="line-477"></a>    <span class='varid'>exclAcc</span>    <span class='keyglyph'>=</span> <span class='varid'>exclNew</span> <span class='varop'>++</span> <span class='varid'>excl</span>
+<a name="line-478"></a>    <span class='varid'>extAcc</span>     <span class='keyglyph'>=</span> <span class='varid'>extNew</span>  <span class='varop'>++</span> <span class='varid'>ext</span>
+<a name="line-479"></a>    <span class='varid'>exclNew</span>    <span class='keyglyph'>=</span> <span class='varid'>extNew</span>  <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>parsePreList</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>nameExcl</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-480"></a>    <span class='varid'>extNew</span>     <span class='keyglyph'>=</span>             <span class='varid'>parsePreList</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>nameExt</span>  <span class='str'>""</span>
+<a name="line-481"></a>    <span class='layout'>(</span><span class='varid'>nameExcl</span><span class='layout'>,</span>
+<a name="line-482"></a>     <span class='varid'>nameExt</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>xsltUri</span>
+<a name="line-483"></a>                   <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>xsltExlcudeResultPrefixes</span>   <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixes</span>   <span class='layout'>)</span>
+<a name="line-484"></a>                   <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>xsltExlcudeResultPrefixesLRE</span><span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixesLRE</span><span class='layout'>)</span>
+<a name="line-485"></a>
+<a name="line-486"></a><span class='comment'>-- parse a prefix list, create a list of uris: </span>
+<a name="line-487"></a><span class='comment'>-- "pre1 pre2 pre3" -&gt; ["pre1.uri","pre2.uri","pre3.uri"]</span>
+<a name="line-488"></a>
+<a name="line-489"></a><a name="parsePreList"></a><span class='definition'>parsePreList</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-490"></a><span class='definition'>parsePreList</span> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>lookupPrefix</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>
+<a name="line-491"></a>
+<a name="line-492"></a><span class='comment'>-- -----------------------------------</span>
+<a name="line-493"></a><span class='comment'>-- Extraction of contextual Information from an XML-Node</span>
+<a name="line-494"></a>
+<a name="line-495"></a><a name="extractAddUris"></a><span class='definition'>extractAddUris</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
+<a name="line-496"></a><span class='definition'>extractAddUris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> 
+<a name="line-497"></a>    <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>exclUris</span><span class='layout'>)</span><span class='layout'>)</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span>
+<a name="line-498"></a>  <span class='keyword'>where</span>
+<a name="line-499"></a>    <span class='varid'>exclUris</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltExlcudeResultPrefixesLRE</span> <span class='str'>""</span>
+<a name="line-500"></a>
+<a name="line-501"></a><span class='comment'>-- -----------------------------------</span>
 </pre></body>
 </html>
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 8.2.0</title>
+    <title>Haskell XML Toolbox 8.3.0</title>
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   </head>
 
   <body style="background-color: #ffffff;">
-    <h1>Haskell XML Toolbox 8.2.0</h1>
+    <h1>Haskell XML Toolbox 8.3.0</h1>
 
     <h3>Contents</h3>
     <ul>
@@ -159,7 +159,7 @@
     <p>
       The description of the development of the <a href="http://www.w3.org/TR/xpath">XPath</a> modules
       is described (in german) in <em>Konzeption und Implementierung
-	eines XPath-Moduls für die Haskell XML Toolbox</em>
+	eines XPath-Moduls f&uuml;r die Haskell XML Toolbox</em>
       (<a href="./hxpath/diplomarbeit.pdf">PDF-document</a>).
     </p>
 
@@ -185,8 +185,8 @@
     <a name="down"></a>
     <h3>Downloads</h3>
     <p>
-      <a href="hxt-8.2.0.tar.gz">Haskell XML Toolbox 8.2.0</a>,
-      released 2008-11-20:
+      <a href="hxt-8.3.0.tar.gz">Haskell XML Toolbox 8.3.0</a>,
+      released 2009-03-18:
     </p>
     <ul>
       <li>This version works with ghc 6.10 with cabal 1.6.
@@ -225,13 +225,12 @@
     <p>
       Before installing this version, install the curl and tagsoup modules.
       For a quick install with Cabal execute the following commands in
-      <tt>.../HXT-8.2.0</tt>
+      <tt>.../HXT-8.3.0</tt>
     </p>
     <pre>
-    make setup
-    ./setup configure --ghc
-    ./setup build
-    ./setup install		# with root privileges
+    cabal configure
+    cabal build
+    sudo cabal install --global
     </pre>
     <p>
       A quick test of the example programs:
@@ -252,6 +251,27 @@
     <a name="change"></a>
     <h3>Change History</h3>
     <ul>
+      <li>In <a href="hxt-8.3.0.tar.gz">Version 8.3.0</a>
+	<ul>
+	  <li>
+	    New output option "a_no_empty_elements" for preventing
+	    the XML short format "&lt;name/&gt;" for HTML elements,
+	    like "script", "p", and others. Especially a script tag
+	    of the form "&lt;script href="..."/&gt;" does not work in
+	    firefox.
+	    Turning on this option gives the form "&lt;script href="..."&gt;&lt;/script&gt;".
+	  </li>
+	  <li>
+	    An input option "a_strict_input" for bytestring input of
+	    files added. Lazy input, especially when using the tagsoup
+	    parser, can lead to error messages like "too many open
+	    files" when processing a whole bunsh of documents.
+	  </li>
+	  <li>Internal representation of qualified names changed to gain
+	    more space efficency.
+	  </li>
+	</ul>
+      </li>
       <li>In <a href="hxt-8.2.0.tar.gz">Version 8.2.0</a>
 	<ul>
 	  <li>
@@ -512,7 +532,7 @@
       The filter package will not be actively developed any more.
       Please move to the arrow version for long term projects.
       Installation works with cabal in the usual way.
-      Download archive is <a href="hxt-filter-8.2.0.tar.gz">hxt-filter-8.2.0.tar.gz</a>,
+      Download archive is <a href="hxt-filter-8.3.0.tar.gz">hxt-filter-8.3.0.tar.gz</a>,
       <em><a href="./hdoc-filter/index.html">HXT Filter API Documentation</a></em>
       with source links is availabe as well as a
       darcs repository under <a href="http://darcs2.fh-wedel.de/repos/hxt-filter/">http://darcs2.fh-wedel.de/repos/hxt-filter</a>.
@@ -570,7 +590,7 @@
 	    </a>
 	  </td>
 	</tr>
-	<tr><td><i>Last modified: 2008-11-20</i></td><td>&nbsp;</td></tr>
+	<tr><td><i>Last modified: 2009-03-18</i></td><td>&nbsp;</td></tr>
     </table>
 
   </body>
diff --git a/examples/arrows/Makefile b/examples/arrows/Makefile
--- a/examples/arrows/Makefile
+++ b/examples/arrows/Makefile
@@ -9,7 +9,7 @@
 		hrelaxng \
 		RelaxTestSuite \
 		AGentleIntroductionToHXT \
-		performance
+		performance RegexXMLSchema
 
 HXT_HOME	= ../..
 PKGFLAGS	=
diff --git a/examples/arrows/RegexXMLSchema/Makefile b/examples/arrows/RegexXMLSchema/Makefile
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RegexXMLSchema/Makefile
@@ -0,0 +1,128 @@
+# $Id: Makefile,v 1.9 2006/11/11 15:36:03 hxml Exp $
+
+HXT_HOME	= ../../..
+PKGFLAGS	= 
+GHCFLAGS	= -Wall -O2
+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
+
+DIST		= $(HXT_HOME)/dist/examples/arrows
+DIST_DIR	= $(DIST)/RegexXMLSchema
+
+CNT		= 3
+
+ropts		= +RTS -s -RTS 
+
+prog		= ./REtest
+prog2		= ./Lines
+prog3		= ./RElines
+prog4		= ./Words
+prog5		= ./REwords
+prog0		= ./Copy
+
+progs		= $(prog) $(prog0) $(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)
+
+$(prog0)	: $(prog)
+		ln -f $(prog) $(prog0)
+
+# 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		= 18
+
+test		: $(prog)
+		$(MAKE) genfiles   tests="$(tests)"
+		$(MAKE) copy       tests="$(tests)"
+		$(MAKE) lines      tests="$(tests)"
+		$(MAKE) relines    tests="$(tests)"
+		$(MAKE) words      tests="$(tests)"
+		$(MAKE) rewords    tests="$(tests)"
+
+perftest	: $(prog)
+		$(MAKE) test tests="2 3 10 11 12 13 14 15 16 17 18 19 20"
+
+genfiles	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog) $(ropts) $$i ; \
+		time $(prog) $(ropts) $$i ; \
+		ls -l tree-*$$i.xml ; \
+		echo ; \
+		done
+
+copy	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog0) $(ropts) $$i ; \
+		time $(prog0) $(ropts) $$i ; \
+		ls -l tree-*$$i.xml.copy ; \
+		echo ; \
+		done
+
+lines	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog2) $(ropts) $$i ; \
+		time $(prog2) $(ropts) $$i ; \
+		ls -l tree-*$$i.xml.lines ; \
+		echo ; \
+		done
+
+relines	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog3) $(ropts) $$i ; \
+		time $(prog3) $(ropts) $$i ; \
+		ls -l tree-*$$i.xml.relines ; \
+		echo ; \
+		done
+
+words	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog4) $(ropts) $$i ; \
+		time $(prog4) $(ropts) $$i ; \
+		ls -l tree-*$$i.xml.words ; \
+		echo ; \
+		done
+
+rewords	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog5) $$i ; \
+		time $(prog5) $(ropts) $$i ; \
+		ls -l tree-*$$i.xml.rewords ; \
+		echo ; \
+		done
+
+dist		:
+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
+		cp Makefile REtest.hs $(DIST_DIR)
+
+clean		:
+		rm -f $(progs) *.o *.hi *.xml *.xml.*
+
diff --git a/examples/arrows/RegexXMLSchema/REtest.hs b/examples/arrows/RegexXMLSchema/REtest.hs
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RegexXMLSchema/REtest.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE BangPatterns#-}
+
+-- ----------------------------------------
+
+module Main(main)
+where
+
+import Text.XML.HXT.Arrow
+import Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch
+
+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
+      al <- getArgs
+      let i = if null al
+	      then 4
+	      else (read . head $ al)::Int
+      main' p i
+    where
+    main' p' = fromMaybe main1 . lookup (pn p') $ mpt
+    mpt = [ ("REtest",	   main1)
+	  , ("Copy",       main2 "copy"    (:[]))
+	  , ("Lines",      main2 "lines"   lines)
+	  , ("RElines",    main2 "relines" relines)
+	  , ("Words",      main2 "words"   words)
+	  , ("REwords",    main2 "rewords" rewords)
+	  ]
+
+-- ----------------------------------------
+
+-- 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	:: String -> (String -> [String]) -> Int -> IO ()
+main2 ext lines' i
+    = do
+      hPutStrLn stderr "start processing"
+      h  <- openFile (fn i) ReadMode
+      c  <- hGetContents h
+      let ls = lines' c
+      o  <- openFile (fn i ++ "." ++ ext) WriteMode
+      mapM_ (hPutStrLn o) ls
+      hClose o
+      hClose h
+      hPutStrLn stderr "end  processing"
+
+relines		:: String -> [String]
+relines		= tokenize "[^\n\r]*"
+
+rewords		:: String -> [String]
+rewords		= tokenize "[^ \t\n\r]+"
+
+-- ----------------------------------------
+
+pn	:: String -> String
+pn	= reverse . takeWhile (/= '/') . reverse
+
+fn	:: Int -> String
+fn	= ("tree-" ++) . (++ ".xml") . reverse . take 4 . reverse . ((replicate 4 '0') ++ ) . show
+
+-- ----------------------------------------
+
+genDoc		:: Int -> String -> IOSArrow b XmlTree
+genDoc d out    = constA (mkBTree d)
+		  >>>
+		  xpickleVal xpickle
+		  >>>
+		  indentDoc
+		  >>>
+		  putDoc out
+
+-- ----------------------------------------
+
+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)
+
+-- ----------------------------------------
+
+-- 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/hparser/Makefile b/examples/arrows/hparser/Makefile
--- a/examples/arrows/hparser/Makefile
+++ b/examples/arrows/hparser/Makefile
@@ -37,8 +37,9 @@
 EX3		= ./namespace0.xml
 EX3a		= ./namespace1.xml
 EX4		= ./lousy.html
+EX4a		= ./emptyElements.html
 
-EX		= $(wildcard example*.xml) $(wildcard lousy*.html) $(wildcard *valid*.xml *valid*.rng) $(wildcard namespace*.xml)
+EX		= $(wildcard example*.xml) $(wildcard lousy*.html) $(wildcard empty*.html) $(wildcard *valid*.xml *valid*.rng) $(wildcard namespace*.xml)
 
 test0		:
 		@echo "===> a 1. simple valid document"
@@ -108,6 +109,11 @@
 		$(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
+		@echo "===> the source of another lousy html document containing empty elements" ; echo ; sleep 2
+		cat $(EX4a)
+		@sleep 2 ; echo ; echo "===> parser accepts this document and tries to build a document tree" ; echo ; sleep 2
+		$(prog) --indent --preserve-comment --parse-html --output-html --no-empty-elements $(EX4a)
 		@echo
 
 
diff --git a/examples/arrows/hparser/emptyElements.html b/examples/arrows/hparser/emptyElements.html
new file mode 100644
--- /dev/null
+++ b/examples/arrows/hparser/emptyElements.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <title/>
+    <meta name="description" value="a lousy HTML doc with empty elements">
+    <script href="javascript.js"/>
+  </head>
+  <body>
+    <h1/>
+    <h2/>
+    <p/>
+    <div/>
+      <br/>
+      <img src="pic.jpg"/>
+  </body>
+</html>
diff --git a/examples/arrows/hxpath/Makefile b/examples/arrows/hxpath/Makefile
--- a/examples/arrows/hxpath/Makefile
+++ b/examples/arrows/hxpath/Makefile
@@ -13,6 +13,9 @@
 force		:
 		$(GHC) --make -o $(prog) $(prog).hs
 
+local		:
+		ghc --make -o $(prog2) $(GHCFLAGS) -fglasgow-exts -ignore-package hxt -i../../../src $(prog2).hs
+
 $(prog)		: $(prog).hs
 		$(GHC) --make -o $@ $<
 
diff --git a/examples/arrows/hxpath/XPathShell.hs b/examples/arrows/hxpath/XPathShell.hs
--- a/examples/arrows/hxpath/XPathShell.hs
+++ b/examples/arrows/hxpath/XPathShell.hs
@@ -40,6 +40,7 @@
 import Text.ParserCombinators.Parsec
     ( runParser )
 
+type NsEnv'	= AssocList String String
 
 main	:: IO()
 main
@@ -50,17 +51,20 @@
 	 then evalXPath path env (head doc)
 	 else evalLoop env doc
 
-evalArgs			:: [String] -> IO (String, NsEnv, XmlTrees)
+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, ""]	= return (path, buildEnv env, [])
 evalArgs [path, env, doc]	= do
 				  (d, ne) <- loadDoc doc
-				  return (path, addEntries ne $ addEntries (read env) $ defaultEnv, d)
+				  return (path, addEntries ne . buildEnv $ env, d)
 evalArgs al			= evalArgs (take 3 al)
 
-loadDoc		:: String -> IO ([XmlTree], NsEnv)
+buildEnv			:: String -> NsEnv'
+buildEnv env			= (addEntries . read $ env) $ defaultEnv
+
+loadDoc		:: String -> IO ([XmlTree], NsEnv')
 loadDoc doc
     = do
       d <- runX ( readDocument [ (a_tagsoup, v_0)
@@ -98,7 +102,7 @@
 	   )
       return ()
 
-evalXPath	:: String -> NsEnv -> XmlTree -> IO()
+evalXPath	:: String -> NsEnv' -> XmlTree -> IO()
 evalXPath path env doc
     | nr == xr
 	= putStrLn . unlines $ "ok: " : nr
@@ -112,11 +116,11 @@
 		       ] ++ nr
 	  putStrLn $ xpt path
     where
-    xpt = either show show . runParser parseXPath env ""
+    xpt = either show show . runParser parseXPath (toNsEnv env) ""
     nr = runLA (XPS.getXPathTreesWithNsEnv env path >>> xshow this) doc
     xr = runLA (    getXPathTreesWithNsEnv env path >>> xshow this) doc
 
-evalLoop	:: NsEnv -> XmlTrees -> IO ()
+evalLoop	:: NsEnv' -> XmlTrees -> IO ()
 evalLoop env doc
     = do
       maybeLine <- readline "xpath> "
@@ -163,7 +167,7 @@
 			  (nd, nv) <- loadDoc n
 			  if null nd
 			     then do
-				  putStrLn ("error when loading " ++ show doc)
+				  putStrLn ("error when loading " ++ show n)
 				  evalLoop env doc
 			     else evalLoop (addEntries nv env) nd
     evalCmd ws@((':':_):_)
@@ -177,9 +181,9 @@
 			     else evalXPath path env (head doc)
 			  evalLoop env doc
 
-defaultEnv	:: NsEnv
-defaultEnv	= [ ("xml",xmlNamespace)
-		  , ("xmlns",xmlnsNamespace)
-		  ]
+defaultEnv		:: NsEnv'
+defaultEnv		= [ ("xml",xmlNamespace)
+			  , ("xmlns",xmlnsNamespace)
+			  ]
 
 -- ----------------------------------------
diff --git a/examples/arrows/performance/GenDoc.hs b/examples/arrows/performance/GenDoc.hs
--- a/examples/arrows/performance/GenDoc.hs
+++ b/examples/arrows/performance/GenDoc.hs
@@ -102,7 +102,7 @@
 		    >>>
 		    arr2 (\ ma mi -> "maximum value = " ++ show ma ++ ", minimum = " ++ show mi )
 		    >>>
-		    traceString 1 id
+		    traceValue 1 id
 		  )
       putStrLn x
 
@@ -161,7 +161,8 @@
 		   , (a_remove_whitespace, v_1)
 		   , (a_encoding, isoLatin1)
 		   , (a_issue_warnings, v_0)
-		   , (a_trace, "1")
+		   , (a_trace, v_1)
+		   , (a_strict_input, v_0)
 		   ] src
       >>>
       processChildren (isElem `guards` this)
diff --git a/examples/arrows/performance/Makefile b/examples/arrows/performance/Makefile
--- a/examples/arrows/performance/Makefile
+++ b/examples/arrows/performance/Makefile
@@ -8,6 +8,10 @@
 DIST		= $(HXT_HOME)/dist/examples/arrows
 DIST_DIR	= $(DIST)/performance
 
+CNT		= 3
+
+ropts		= +RTS -s -RTS 
+
 prog		= ./GenDoc
 prog2		= ./ReadDoc
 prog3		= ./PruneRight
@@ -57,7 +61,7 @@
 genfiles	:
 		@for i in $(tests) ; \
 		do \
-		echo time $(prog) $$i ; \
+		echo time $(prog) $(ropts) $$i ; \
 		time $(prog) $$i ; \
 		ls -l tree-*$$i.xml ; \
 		echo ; \
@@ -66,7 +70,7 @@
 readfiles	:
 		@for i in $(tests) ; \
 		do \
-		echo time $(prog2) $$i ; \
+		echo time $(prog2) $(ropts) $$i ; \
 		time $(prog2) $$i ; \
 		echo ; \
 		done
@@ -74,7 +78,7 @@
 pruneright	:
 		@for i in $(tests) ; \
 		do \
-		echo time $(prog3) $$i ; \
+		echo time $(prog3) $(ropts) $$i ; \
 		time $(prog3) $$i ; \
 		echo ; \
 		done
@@ -82,7 +86,7 @@
 pruneleft	:
 		@for i in $(tests) ; \
 		do \
-		echo time $(prog4) $$i ; \
+		echo time $(prog4) $(ropts) $$i ; \
 		time $(prog4) $$i ; \
 		echo ; \
 		done
@@ -91,7 +95,7 @@
 		@for i in $(tests) ; \
 		do \
 		echo time $(prog5) $$i ; \
-		time $(prog5) $$i ; \
+		time $(prog5) $(ropts) $$i ; \
 		echo ; \
 		done
 
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: 8.2.0
+version: 8.3.0
 license: OtherLicense
 license-file: LICENCE
 maintainer: Uwe Schmidt <uwe@fh-wedel.de>
@@ -31,7 +31,6 @@
   Data.Char.UTF8,
   Data.NavTree,
   Data.Tree.Class,
-  Data.Tree.NTree.Filter,
   Data.Tree.NTree.TypeDefs,
   Text.XML.HXT.Arrow,
   Text.XML.HXT.Arrow.DTDProcessing,
@@ -58,7 +57,6 @@
   Text.XML.HXT.DOM.IsoLatinTables,
   Text.XML.HXT.DOM.MimeTypeDefaults,
   Text.XML.HXT.DOM.MimeTypes,
-  Text.XML.HXT.DOM.NamespacePredicates,
   Text.XML.HXT.DOM.QualifiedName,
   Text.XML.HXT.DOM.ShowXml,
   Text.XML.HXT.DOM.TypeDefs,
@@ -68,7 +66,6 @@
   Text.XML.HXT.DOM.XmlKeywords,
   Text.XML.HXT.DOM.XmlNode,
   Text.XML.HXT.DOM.XmlOptions,
-  Text.XML.HXT.DOM.XmlTreeTypes,
   Text.XML.HXT.DTDValidation.AttributeValueValidation,
   Text.XML.HXT.DTDValidation.DTDValidation,
   Text.XML.HXT.DTDValidation.DocTransformation,
diff --git a/src/Control/Arrow/ArrowNF.hs b/src/Control/Arrow/ArrowNF.hs
--- a/src/Control/Arrow/ArrowNF.hs
+++ b/src/Control/Arrow/ArrowNF.hs
@@ -34,3 +34,5 @@
 class (Arrow a) => ArrowNF a where
     rnfA	:: (NFData c) => a b c -> a b c
     rnfA f	= f >>> strictA
+
+-- ------------------------------------------------------------
diff --git a/src/Data/Tree/NTree/Filter.hs b/src/Data/Tree/NTree/Filter.hs
deleted file mode 100644
--- a/src/Data/Tree/NTree/Filter.hs
+++ /dev/null
@@ -1,913 +0,0 @@
--- ------------------------------------------------------------
-
-{- |
-   Module     : Data.Tree.NTree.Filter
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
-   License    : MIT
-
-   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
-   Stability  : experimental
-   Portability: portable
-   Version    : $Id: Filter.hs,v 1.6 2006/11/12 14:52:59 hxml Exp $
-
-Filter for n-ary tree structure with filter combinators
-copied and modified from HxXml (<http://www.cs.york.ac.uk/fp/HaXml/>)
-
-Similar but more flexible functions for tree processing are defined in the
-arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".
-For new applications, especially for XML processing, it's recommended to use the arrow interface
-"Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"
-
--}
-
--- ------------------------------------------------------------
-
-module Data.Tree.NTree.Filter
-    ( module Data.Tree.NTree.TypeDefs
-    , TFilter
-    , TSFilter
-    , satisfies
-
-    -- * Filter
-    , none		-- simple filter
-    , this
-
-    , isOf
-    , isOfNode		-- predicate filter
-
-    , mkNTree		-- contructor filter
-
-    , replaceNode	-- simple editing
-    , replaceChildren
-
-    , modifyNode
-    , modifyNode0
-    , modifyChildren
-    , substChildren
-    , processChildren	-- filter combinators
-
-    , o
-    , (.>)
-    , seqF
-    , (..>)
-    , (+++)
-    , cat
-
-    , orElse		-- choices
-    , iff		-- if then else filter
-    , choice
-    , IfThen(..)
-    , when
-    , whenNot
-    , guards
-    , neg		-- negation
-    , containing	-- previous: with, but with is keyword in haskell extensions
-    , notContaining	-- previous: without
-
-    , (/>)		-- selectors
-    , (</)
-    , deep		-- recursive search
-    , deepest
-    , multi
-    , processBottomUp	-- recursive editing
-    , processBottomUpIfNot
-    , processTopDown
-    , processTopDownUntil
-    , insertChildrenAt
-    , insertChildrenAfter
-
-      -- * Monadic Filter
-    , thisM		-- monadic filter
-    , noneM
-    , (.>>)		-- monadic composition
-    , seqM		-- generalisation of .>>
-    , (+++>>)		-- monadic parallel combination, monadic +++
-    , catM		-- monadic form of cat
-    , ifM		-- monadic if then else
-    , choiceM		-- monadic choice
-    , whenM		-- special monadic ifs
-    , whenNotM
-    , guardsM
-    , containingM
-    , processChildrenM	-- monadic versions of recursive editing
-    , processTopDownM
-    , processBottomUpM
-    , liftMf		-- lift a normal filter to a monadic filter
-    , ($$)		-- apply a filter to a list
-    , ($$<)		-- apply a monad filter to a list
-    , performAction	-- run a command within a filter
-    )
-
-where
-
-
-import Data.Tree.NTree.TypeDefs
-
-infixl 6 `containing`, `notContaining`, `containingM`
-infixr 5 `o`, +++, +++>>
-infixl 5 />, </, `orElse`, .>, ..>, .>>
-infixr 4 `when`, `whenNot`, `guards`, `whenM`, `whenNotM`, `guardsM`
-infixr 3 :->
-infixr 0 $$, $$<
-
--- |
--- tree filter type: a function mapping a tree onto a list of trees
---
--- filter can be used in various ways, as predicates, selectors, transformers, ...
-
-type TFilter  node	= NTree  node -> NTrees node
-
--- |
--- a filter for sequences
-
-type TSFilter node	= NTrees node -> NTrees node
-
--- ------------------------------------------------------------
-
--- |
--- satisfies converts a result of a predicate filter into a boolean
---
--- is a shortcut for not . null
---
--- typical use in guards or ifs: @if (satisfies f) t then ... else ... @
---
---    * 1.parameter f :  the predicate filter
---
---    - 2.parameter t :  the tree to be tested
---
---    - returns : @b = not (null (f t))@
-
-satisfies	:: (a -> [b]) -> a -> Bool
-satisfies f	= not . null . f
-
--- ------------------------------------------------------------
---
--- simple filter
-
--- |
--- the null filter, returns the empty list
-
-none		:: a -> [b]
-none _		= []
-
--- |
--- the unit filter, returns the single element list containing the argument
-
-this		:: a -> [a]
-this n		= [n]
-
--- ------------------------------------------------------------
---
--- selecting filter
-
--- |
--- conversion from predicate function to filter
---
---    * 1.parameter p :  the predicate for testing the tree
---
---    - returns : 'this' or 'none' depending on the predicate
-
-isOf		:: (a -> Bool) -> (a -> [a])
-isOf p t
-    = if p t then [t] else []
-
--- |
--- select filter, selects trees with node values with a specific property
---
---    * 1.parameter p :  the predicate for testing the node value
---
---    - returns : @[]@ or @[t]@ depending on @p t@
---
--- a special case of 'isOf' filter
-
-isOfNode	:: (node -> Bool) -> TFilter node
-isOfNode p	= isOf (p . getNode)
-
--- ------------------------------------------------------------
---
--- simple editing filters
-
--- |
--- filter for substituting an arbitray tree by a constant
---
---    * 1.parameter t :  the result tree, the input tree is ignored
---
---    - returns : the filter
-
-mkNTree		:: NTree node -> TFilter node
-mkNTree t	= const [t]
-
--- |
--- filter for replacing the node
---
---    * 1.parameter n :  the new node
---
---    - returns : the editing filter
-
-replaceNode	:: node -> TFilter node
-replaceNode n (NTree _ cs)
-    = [NTree n cs]
-
--- |
--- filter for replacing the children
---
---    * 1.parameter cs :  cs the list of children
---
---    - returns : the filter
-
-replaceChildren	:: NTrees node -> TFilter node
-replaceChildren cs (NTree n _)
-    = [NTree n cs]
-
-modifyNode	:: (node -> Maybe node) -> TFilter node
-modifyNode tf (NTree n cs)
-    = maybe [] (\ n' -> [NTree n' cs]) (tf n)
-
--- |
--- filter for editing the node
---
---    * 1.parameter nf :  the XNode editing funtion
---
---    - returns : the filter
-
-modifyNode0	:: (node -> node) -> TFilter node
-modifyNode0 tf	= modifyNode (Just . tf)
-
--- |
--- filter for editing the children
---
--- all children are processed with a filter mapping lists to lists,
--- this enables not only elementwise editing by lifting a normal
--- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation
--- of the order of the elements, e.g. "reverse" is an appropriate childen
--- editing function.
---
---    * 1.parameter csf :  the children editing function
---
---    - returns : the filter
---
--- see also : 'processChildren'
-
-modifyChildren	:: TSFilter node -> TFilter node
-modifyChildren f -- (NTree n cs)
-    -- = [NTree n (f cs)]
-    = substChildren (f . getChildren)
-
--- |
--- filter for substituting the children of a tree by
--- a new list of childen computed by applying a filter to the input tree.
--- 'modifyChildren' can be expressed by 'substChildren':
--- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@
-
-substChildren	:: TFilter node -> TFilter node
-substChildren f t@(NTree n _cs)
-    = [NTree n (f t)]
-
--- ------------------------------------------------------------
---
--- combinators (copied from HaXml)
---
-
--- |
--- sequential composition of filters, usually written in infix notation f2 `o` f1.
---
--- for predicate filter the logical AND
---
---    * 1.parameter f2 :  the 2. filter
---
---    - 2.parameter f1 :  the 1. filter
---
---    - returns : the fiter applying first f1 to n and then f2 to the result (like function composition)
-
-o		:: (a -> [b]) -> (c -> [a]) -> (c -> [b])
-f `o` g		= concatMap f . g
-
--- |
--- pronounced \"followed by\", defined as: @f .> g = g \`o\` f@.
---
--- allows filter composition in a more readable way from left to right
---
---    * 1.parameter f1 :  the 1. filter
---
---    - 2.parameter f2 :  the 2. filter
---
---    - returns : the composition of f1 and f2
---
--- see also : 'o', '(..>)'
-
-(.>)		:: (a -> [b]) -> (b -> [c]) -> (a -> [c])
-f .> g		= g `o` f
-
--- |
--- apply a list of filters sequentially with '(.>)', for predicate filters the generalized AND
---
--- see also : '(.>)'
-
-seqF		:: [a -> [a]] -> (a -> [a])
-seqF		= foldl (.>) this
-
--- |
--- binary parallel composition, the logical OR for predicate filter
---
---    * 1.parameter f1 :  the 1. filter
---
---    - 2.parameter f2 :  the 2. filter
---
---    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
-
-(+++)		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])
-f +++ g		= \ t -> f t ++ g t
-
--- |
--- special sequential composition.
---
--- filter f is applied to an argument t.
--- then filter g is applied to all elements of the result list,
--- but the argument t is also passed as extra parameter to g.
---
--- This allows for step by step transformations of a tree
--- with access to the original tree in every
--- transformation step.
---
--- see also : '(.>)', 'o'
-
-(..>)		:: (a -> [b]) -> (a -> b -> [d]) -> (a -> [d])
-f ..> g		= \ t -> (g t `o` f) t
-
--- |
--- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR
---
---    * 1.parameter fs :  the list of filters
---
---    - returns : the composing filter
-
-cat		:: [a -> [b]] -> (a -> [b])
-cat fs  t
-    = concat [ f t | f <- fs ]
-
--- |
--- Filter for editing the children of a tree element wise
---
---    * 1.parameter cf :  the filter applied to the children
---
---    - returns : the editing filter
---
--- see also : 'modifyChildren'
-
-processChildren	:: TFilter node -> TFilter node
-processChildren ft (NTree n cs)
-    = [NTree n (ft $$ cs)]
-
--- |
--- infix operator for applying a filter to a list of trees
---
---    * 1.parameter f :  the filter
---
---    - 2.parameter ts :  the list of trees
---
---    - returns : the concatenated list of results
-
-($$)		:: (a -> [b]) -> [a] -> [b]
-f $$ l
-    = concatMap f l
-
--- ------------------------------------------------------------
---
--- choices
---
-
--- |
--- directional choice, usually written in infix notation as f `orElse` g
---
---    * 1.parameter f :  the 1. filter
---
---    - 2.parameter g :  the 2. filter
---
---    - 3.parameter t :  the tree
---
---    - returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result
-
-orElse		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])
-f `orElse` g
-    = \ t-> let
-	    res = f t
-	    in
-	    if null res
-	    then g t
-	    else res
-
--- |
--- if then else lifted to filters
---
---    * 1.parameter p :  the predicate filter
---
---    - 2.parameter t :  the \"then\" filter
---
---    - 3.parameter e :  the \"else\" filter
---
---    - returns : the resulting conditional filter
-
-iff		:: (a -> [c]) -> (a -> [b]) -> (a -> [b]) -> (a -> [b])
-iff p f g	= \ c -> if (satisfies p) c then f c else g c
-
--- |
--- when the predicate p holds, f is applied, else the identity filter this
---
---    * 1.parameter f :  the conditinally applied filter
---
---    - 2.parameter p :  the predicate
---
---    - returns : the conditional filter
---
--- see also : 'iff', 'whenNot', 'guards', 'whenM'
-
-when		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])
-f `when` g	= iff g f this
-
--- |
--- the complementary filter of when
---
--- shortcut for f `when` neg g
---
--- see also : 'iff', 'when', 'whenNotM', 'neg'
-
-whenNot		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])
-f `whenNot` g	= iff g this f
-
--- |
--- when the predicate p holds, f is applied, else the null filter none
---
---    * 1.parameter p :  the predicate filter
---
---    - 2.parameter f :  the conditionally applied filter
---
---    - returns : the conditional filter
---
--- see also : 'iff', 'when', 'guardsM'
-
-guards		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])
-g `guards` f	= iff g f none
-
-
--- |
--- negation lifted to filters
---
---    * 1.parameter f :  the predicate filter
---
---    - returns : the filter, that succeeds, when f failed
-
-neg		:: (a -> [c]) -> a -> [a]
-neg f		= iff f none this
-
--- |
--- auxiliary datatype for cases within choice filter
-
-data IfThen a b = a :-> b
-
--- |
--- multiway branch. The list of cases @f :-> g@ is processed sequentially,
--- in the first case for that f holds g is applied, if no case matches, 'none' is
--- applied.
--- This filter can be used like a case expression: @choice [ p1 :-> f1, p2 :-> f2, ... , this :-> defaultFilter]@
---
--- see also : 'iff', 'choiceM'
-
-choice	:: [IfThen (a -> [c]) (a -> [b])] -> (a -> [b])
-choice []
-    = none
-
-choice ((g :-> f) : cs)
-    = iff g f (choice cs)
-
--- |
--- pruning: keep only those results from f for which g holds, usually written in infix notation as f `containing` g
---
---    * 1.parameter f :  the processing filter
---
---    - 2.parameter g :  the predicate filter
---
---    - 3.parameter t :  the tree
---
---    - returns : all trees r from f t, for which g r holds (is not the empty list)
---
--- see also : 'notContaining'
-
-containing		:: (a -> [b]) -> (b -> [c]) -> a -> [b]
-f `containing` g
-    = filter (satisfies g) . f
-
--- |
--- pruning: keep only those results from f for which g does not hold
---
--- see also : 'containing'
-
-notContaining		:: (a -> [b]) -> (b -> [c]) -> a -> [b]
-f `notContaining` g
-    = filter (null . g) . f
-
--- |
--- pruning: monadic version of containing, usually written in infix notation as f `containingM` g
---
---    * 1.parameter f :  the monadic processing filter
---
---    - 2.parameter g :  the predicate filter
---
---    - 3.parameter t :  the tree
---
---    - returns : all trees r from f t, for which g r holds (is not the empty list)
---
--- see also : 'notContaining'
-
-containingM		:: Monad m => (a -> m [b]) -> (b -> [c]) -> a -> m [b]
-f `containingM` g
-    = \ t -> do
-             res <- f t
-             return $ filter (satisfies g) res
-
--- |
--- pronounced \"slash\", meaning g inside f
-
-(/>)		:: TFilter node -> TFilter node -> TFilter node
-f /> g
-    = g `o` getChildren `o` f
-
--- |
--- pronounced \"outside\" meaning f containing g
-
-(</)		:: TFilter node -> TFilter node -> TFilter node
-f </ g
-    = f `containing` (g `o` getChildren)
-
--- ------------------------------------------------------------
---
--- recursive search filters
-
--- |
--- top down search.
---
--- search terminates, when filter f succeeds
--- can e.g. be used for finding all outermost tag node of a specific kind
-
-deep		:: TFilter node -> TFilter node
-deep f
-    = f `orElse` (deep f `o` getChildren)
-
--- |
--- bottom up search.
---
--- first the children are processed,
--- if this does not succeed, the node itself is processed
--- can e.g. be used for finding all innermost tag nodes of a specific kind
-
-deepest		:: TFilter node -> TFilter node
-deepest f
-    = (getChildren .> deepest f) `orElse` f
-
--- |
--- process all nodes of the whole tree.
---
--- can e.g. be used for finding all nodes of a specific kind
-
-multi		:: TFilter node -> TFilter node
-multi f
-    = f +++ (getChildren .> multi f)
-
--- ------------------------------------------------------------
---
--- recursive transformation filters
---
-
--- |
--- bottom up transformation
---
---    * 1.parameter f :  the /simple/ transforming filter
---
---    - returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner
---
--- see also : 'processTopDown', 'processBottomUpIfNot'
-
-processBottomUp	:: TFilter node -> TFilter node
-processBottomUp f
-    = processChildren (processBottomUp f) .> f
-
--- |
--- top down transformation
---
---    * 1.parameter f :  the /simple/ transforming filter
---
---    - returns : the filter that applies f first to the tree and then recursively to all subtrees of the result
---
--- see also : 'processBottomUp'
-
-processTopDown	:: TFilter node -> TFilter node
-processTopDown f
-    = f .> processChildren (processTopDown f)
-
--- |
--- guarded bottom up transformation, stops at subtrees for which a predicate p holds
---
---    * 1.parameter f :  the transforming filter
---
---    - 2.parameter p :  the predicate filter for the guard
---
---    - returns : the filter for processing all (sub-)trees
---
--- see also : 'processBottomUp'
-
-processBottomUpIfNot	:: TFilter node -> TFilter node -> TFilter node
-processBottomUpIfNot f p
-    = (processChildren (processBottomUpIfNot f p) .> f) `whenNot` p
-
--- |
--- top down transformation until a node to be transformed is found
---
---    * 1.parameter f :  the /simple/ transforming filter
---
---    - returns : the filter that applies f first to the tree and, if the filter does not succeed,
---		  recursively to all children of the input tree.
---
--- Example:
---
--- @processTopDownUntil none@
---
--- is the identity filter (maybe a bit more inefficient).
---
--- Example:
---
--- @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@
---
--- is a filter for adding an attribute border=\"2\" in all top level table tags.
---		  The content of table tags will remain unchanged.
---
--- see also : 'processTopDown', 'processBottomUp'
-
-processTopDownUntil	:: TFilter node -> TFilter node
-processTopDownUntil f t
-    | null res
-	= processChildren (processTopDownUntil f) t
-    | otherwise
-	= res
-    where
-    res = f t
-
--- ------------------------------------------------------------
---
-
--- |
--- insertion of trees into the list of children at a given position
---
--- useful for inserting something into the list of children at a given position
--- the list of children is split with the @splitAt@ function
--- the nodes are inserted between these two sublists.
---
--- examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front
--- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child
---
--- see also: 'insertChildrenAfter'
-
-
-insertChildrenAt	:: Int -> TFilter node -> TFilter node
-insertChildrenAt i ins t
-    = replaceChildren (cl1 ++ ins t ++ cl2) t
-    where
-    (cl1, cl2) = splitAt i $ getChildren t
-
--- |
--- insertion of trees into the list of children after specific elements
---
--- useful for inserting something into the list of children of a node
--- the list of children is split with the @span@ function and the filter p as predicate
--- the nodes are inserted between these two sublists
---
--- examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front
--- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children
---
--- see also: 'insertChildrenAt'
-
-insertChildrenAfter	:: TFilter node -> TFilter node -> TFilter node
-insertChildrenAfter p ins t
-    = replaceChildren (cl1 ++ ins t ++ cl2) t
-    where
-    (cl1, cl2) = span (not . null . p) $ getChildren t
-
--- ------------------------------------------------------------
---
--- monadic filter
-
--- |
--- the monadic version of the identity filter this.
---
--- see also : 'this'
-
-thisM		:: Monad m => (a -> m [a])
-thisM		= liftMf this
-
--- |
--- the monadic version of the null filter none.
---
--- see also : 'none'
-
-noneM		:: Monad m => (a -> m [b])
-noneM		= liftMf none
-
--- |
--- sequential composition of monadic filters, monadic version of \".>\".
---
---    * 1.parameter f1 :  the 1. monadic filter
---
---    - 2.parameter f2 :  the 2. monadic filter
---
---    - returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)
---
--- see also : '(.>)'
-
-(.>>)	:: Monad m => (a -> m[b]) -> (b -> m [c]) -> (a -> m[c])
-cmd1 .>> cmd2
-    = \ t ->
-      do
-      r1 <- cmd1 t
-      r2 <- mapM cmd2 r1
-      return (concat r2)
-
--- |
--- generalized sequential composition of monadic filters
-
-seqM	:: Monad m => [a -> m[a]] -> (a -> m[a])
-seqM
-    = foldr (.>>) thisM
-
--- |
--- binary parallel composition, the logical OR for predicate filter
---
---    * 1.parameter f1 :  the 1. filter
---
---    - 2.parameter f2 :  the 2. filter
---
---    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
--- see also: 'cat', '+++', 'catM'
-
-(+++>>)		:: Monad m => (a -> m [b]) -> (a -> m [b]) -> (a -> m [b])
-f +++>> g	= \ t -> do
-			 r1 <- f t
-			 r2 <- g t
-			 return (r1 ++ r2)
-
--- |
--- apply a list of monadic filters
---
---    * 1.parameter fs :  the list of filters
---
---    - returns : the composing filter
--- see also: 'cat', '+++', '+++>>'
-
-catM	:: Monad m => [a -> m [b]] -> (a -> m [b])
-catM fs  t
-    = do
-      res <- sequence (map ($ t) fs)
-      return $ concat res
-
--- |
--- monadic if-then-else.
---
---    * 1.parameter p :  the predicate
---
---    - 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree
---
---    - 3.parameter elseP :  the else part
---
---    - returns : the monadic filter for the conditional
-
-ifM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c]) -> (a -> m [c])
-ifM p thenPart elsePart
-    = \ t ->
-      if (satisfies p) t
-      then thenPart t
-      else elsePart t
-
--- |
--- monadic version of multiway branch. The list of cases @f :-> g@ is processed sequentially,
--- in the first case for that f holds g is applied, if no case matches, 'noneM' is
--- applied.
--- This filter can be used like a case expression: @choiceM [ p1 :-> f1, p2 :-> f2, ... , thisM :-> defaultFilter]@
---
--- see also : 'choice', 'ifM'
-
-choiceM		:: Monad m => [IfThen (a -> [c]) (a -> m [b])] -> (a -> m [b])
-choiceM []
-    = noneM
-
-choiceM ((g :-> f) : cs)
-    = ifM g f (choiceM cs)
-
-
--- |
--- when the predicate p holds, the monadic filter f is applied, else the identity filter.
---
---    * 1.parameter f :  the conditinally applied monadic filter
---
---    - 2.parameter p :  the simple predicate
---
---    - returns : the conditional filter
---
--- see also : 'ifM', 'when', 'guardsM', 'whenNotM'
-
-whenM		:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])
-f `whenM` g	= ifM g f thisM
-
--- |
--- the complementary filter of whenM.
---
--- see also : 'ifM', 'whenM', 'whenNot'
-
-whenNotM	:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])
-f `whenNotM` g	= ifM g thisM f
-
--- |
--- when the predicate p holds, the monadic filter f is applied, else the null filter.
---
---    * 1.parameter p :  the simple predicate filter
---
---    - 2.parameter f :  the conditionally applied monadic filter
---
---    - returns : the conditional filter
---
--- see also : 'ifM', 'guards', 'whenM'
-
-guardsM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c])
-g `guardsM` f	= ifM g f noneM
-
--- |
--- Filter for editing the children of a tree with a monadic filter
---
---    * 1.parameter cf :  the monadic filter applied to the children
---
---    - returns : the monadic editing filter
---
--- see also : 'processChildren'
-
-processChildrenM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])
-processChildrenM ft (NTree n cs)
-    = do
-      res <- ft $$< cs
-      return [NTree n res]
-
--- |
--- monadic variant of 'processTopDown'
-
-processTopDownM		:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])
-processTopDownM f
-    = f .>> processChildrenM (processTopDownM f)
-
--- |
--- monadic variant of 'processBottomUp'
-
-processBottomUpM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])
-processBottomUpM f
-    = processChildrenM (processBottomUpM f) .>> f
-
--- |
--- infix operator for applying a monadic filter to a list of trees,
--- typically used in do-notation for processing of intermediate results.
---
---    * 1.parameter f :  the monadic filter
---
---    - 2.parameter ts :  the list of trees
---
---    - returns : the concatenated list of results
---
--- see also : '($$)'
-
-($$<)	:: Monad m => (a -> m [b]) -> [a] -> m [b]
-cmd $$< l
-    = do
-      r <- mapM cmd l
-      return (concat r)
-
--- |
--- lift a filter to a monadic filter
---
---    * 1.parameter f :  the /simple/ filter
---
---    - returns : the lifted monadic version
-
-liftMf	:: Monad m => (a -> [b]) -> a -> m [b]
-liftMf f t
-    = return (f t)
-
--- |
--- run an arbitray command on a tree t and return the tree,
--- used for inserting arbitray commands in a filter pipeline
---
---    * 1.parameter cmd :  the command
---
---    - 2.parameter t :  the argument tree
---
---    - returns : the unchanged tree as a single element list
-
-performAction	:: Monad m => (a -> m b) -> a -> m [a]
-performAction cmd t
-    = do
-      cmd t
-      return [t]
-
--- eof ------------------------------------------------------------
diff --git a/src/Data/Tree/NTree/TypeDefs.hs b/src/Data/Tree/NTree/TypeDefs.hs
--- a/src/Data/Tree/NTree/TypeDefs.hs
+++ b/src/Data/Tree/NTree/TypeDefs.hs
@@ -2,7 +2,7 @@
 
 {- |
    Module     : Data.Tree.NTree.TypeDefs
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
diff --git a/src/Makefile b/src/Makefile
--- a/src/Makefile
+++ b/src/Makefile
@@ -69,7 +69,6 @@
 	Data/Char/UTF8.hs \
 	Data/NavTree.hs \
 	Data/Tree/Class.hs \
-	Data/Tree/NTree/Filter.hs \
 	Data/Tree/NTree/TypeDefs.hs \
 	Text/XML/HXT/Arrow/DocumentInput.hs \
 	Text/XML/HXT/Arrow/DocumentOutput.hs \
@@ -96,7 +95,6 @@
 	Text/XML/HXT/DOM/IsoLatinTables.hs \
 	Text/XML/HXT/DOM/MimeTypeDefaults.hs \
 	Text/XML/HXT/DOM/MimeTypes.hs \
-	Text/XML/HXT/DOM/NamespacePredicates.hs \
 	Text/XML/HXT/DOM/QualifiedName.hs \
 	Text/XML/HXT/DOM/ShowXml.hs \
 	Text/XML/HXT/DOM/TypeDefs.hs \
@@ -106,7 +104,6 @@
 	Text/XML/HXT/DOM/XmlKeywords.hs \
 	Text/XML/HXT/DOM/XmlNode.hs \
 	Text/XML/HXT/DOM/XmlOptions.hs \
-	Text/XML/HXT/DOM/XmlTreeTypes.hs \
 	Text/XML/HXT/DTDValidation/AttributeValueValidation.hs \
 	Text/XML/HXT/DTDValidation/DocTransformation.hs \
 	Text/XML/HXT/DTDValidation/DocValidation.hs \
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
@@ -113,11 +113,20 @@
 
 getFileContents		:: IOStateArrow s XmlTree XmlTree
 getFileContents
-    = applyA ( getAttrValue transferURI
+    = applyA ( ( ( getAttrValue  a_strict_input
+		   >>>
+		   arr isTrueValue
+		 )
+		 &&&
+		 ( getAttrValue transferURI
+		   >>>
+		   getPathFromURI
+		 )
+	       )
 	       >>>
-	       getPathFromURI
+	       traceValue 2 (\ (b, f) -> "read file " ++ show f ++ " (strict input = " ++ show b ++ ")")
 	       >>>
-	       arrIO FILE.getCont
+	       arrIO (uncurry FILE.getCont)
 	       >>>
 	       ( arr addError		-- io error occured
 		 |||
@@ -129,7 +138,11 @@
 
 getStdinContents		:: IOStateArrow s XmlTree XmlTree
 getStdinContents
-    = applyA ( arrIO (\ _ -> FILE.getStdinCont)
+    = applyA (  getAttrValue  a_strict_input
+		>>>
+		arr isTrueValue
+		>>>
+		arrIO FILE.getStdinCont
 	       >>>
 	       ( arr addError		-- io error occured
 		 |||
@@ -267,7 +280,7 @@
     getCont
 	= applyA ( getBaseURI				-- compute the handler and call it
 		   >>>
-		   traceString 2 (("getURIContents: reading " ++) . show)
+		   traceValue 2 (("getURIContents: reading " ++) . show)
 		   >>>
 		   getSchemeFromURI
 		   >>>
@@ -338,7 +351,7 @@
 	>>>
 	perform ( getAttrValue transferURI
 		  >>>
-		  traceString 1 (("getXmlContents: content read and decoded for " ++) . show)
+		  traceValue 1 (("getXmlContents: content read and decoded for " ++) . show)
 		)
 	>>>
 	traceTree
diff --git a/src/Text/XML/HXT/Arrow/DocumentOutput.hs b/src/Text/XML/HXT/Arrow/DocumentOutput.hs
--- a/src/Text/XML/HXT/Arrow/DocumentOutput.hs
+++ b/src/Text/XML/HXT/Arrow/DocumentOutput.hs
@@ -1,7 +1,19 @@
--- |
--- state arrows for document output
---
--- version: $Id: DocumentOutput.hs,v 1.7 2006/11/02 09:34:08 hxml Exp $
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.Arrow.DocumentOutput
+   Copyright  : Copyright (C) 2005-9 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   State arrows for document output
+
+-}
+
+-- ------------------------------------------------------------
 
 module Text.XML.HXT.Arrow.DocumentOutput
     ( module Text.XML.HXT.Arrow.DocumentOutput )
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
@@ -2,7 +2,7 @@
 
 {- |
    Module     : Text.XML.HXT.Arrow.Edit
-   Copyright  : Copyright (C) 2006 Uwe Schmidt
+   Copyright  : Copyright (C) 2006-9 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
@@ -33,6 +33,7 @@
 
     , indentDoc
     , numberLinesInXmlDoc
+    , preventEmptyElements
  
     , removeComment
     , removeAllComment
@@ -56,35 +57,23 @@
     )
 where
 
-import Control.Arrow
-import Control.Arrow.ArrowList
-import Control.Arrow.ArrowIf
-import Control.Arrow.ArrowTree
-
-import Control.Arrow.ListArrow
-
-import Text.XML.HXT.Arrow.XmlArrow
-
-import Text.XML.HXT.DOM.Interface
-
-import qualified
-       Text.XML.HXT.DOM.XmlNode as XN
-
-import Text.XML.HXT.DOM.Unicode
-    ( isXmlSpaceChar )
-
-import Text.XML.HXT.DOM.FormatXmlTree
-    ( formatXmlTree )
-
-import Text.XML.HXT.Parser.XmlEntities
-    ( xmlEntities )
-
-import Text.XML.HXT.Parser.XhtmlEntities
-    ( xhtmlEntities )
+import           Control.Arrow
+import           Control.Arrow.ArrowList
+import           Control.Arrow.ArrowIf
+import           Control.Arrow.ArrowTree
+import 		 Control.Arrow.ListArrow
 
-import Data.Maybe
+import           Text.XML.HXT.Arrow.XmlArrow
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode 	as XN
+import           Text.XML.HXT.DOM.Unicode		( isXmlSpaceChar )
+import           Text.XML.HXT.DOM.FormatXmlTree 	( formatXmlTree )
+import           Text.XML.HXT.Parser.HtmlParsec         ( emptyHtmlTags )
+import           Text.XML.HXT.Parser.XmlEntities	( xmlEntities )
+import           Text.XML.HXT.Parser.XhtmlEntities	( xhtmlEntities )
 
-import qualified Data.Map as M
+import qualified Data.Map 			as M
+import           Data.Maybe
 
 -- ------------------------------------------------------------
 
@@ -304,6 +293,8 @@
 escapeHtmlEntityRef	:: Char -> XmlTree
 escapeHtmlEntityRef	= escapeEntityRef xhtmlEntityRefTable
 
+-- ------------------------------------------------------------
+
 -- |
 -- escape all special XML chars into XML entity references or char references
 --
@@ -328,6 +319,8 @@
 -- in attribute values also \', \", \>, \\n, \\r and \\t are converted into entity or char references,
 -- in comments nothing is converted
 
+-- ------------------------------------------------------------
+
 escapeHtmlDoc		:: ArrowList a => a XmlTree XmlTree
 escapeHtmlDoc
     = fromLA $ escapeDoc escHtmlText escHtmlAttrValue
@@ -342,6 +335,8 @@
     isHtmlAttrEsc c
 	= c >= toEnum(128) || ( c `elem` "<>\"\'&\n\r\t" )
 
+-- ------------------------------------------------------------
+
 escapeDoc		:: LA XmlTree XmlTree -> LA XmlTree XmlTree -> LA XmlTree XmlTree
 escapeDoc escText escAttr
     = escape
@@ -359,6 +354,28 @@
 	  ]
     escVal   = processChildren escAttr
     escDTD   = escVal `when` ( isDTDEntity <+> isDTDPEntity )
+
+-- ------------------------------------------------------------
+
+preventEmptyElements	:: ArrowList a => Bool -> a XmlTree XmlTree
+preventEmptyElements isHtml
+    = fromLA $ insertDummyElem
+    where
+    isNoneEmpty
+	| isHtml	= hasNameWith (localPart >>> (`notElem` emptyHtmlTags))
+	| otherwise	= this
+
+    insertDummyElem
+	= processBottomUp
+	  ( replaceChildren (txt "")
+	    `when`
+	    ( isElem
+	      >>>
+	      isNoneEmpty
+	      >>>
+	      neg getChildren
+	    )
+	  )
 
 -- ------------------------------------------------------------
 
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
@@ -132,7 +132,7 @@
     addInternalEntity
 	= ( ( getDTDAttrValue a_name
 	      >>>
-	      traceString 2 (("processGeneralEntity: general entity definition for " ++) . show)
+	      traceValue 2 (("processGeneralEntity: general entity definition for " ++) . show)
 	    )
 	    &&&
 	    xshow (getChildren >>> isText)
@@ -160,7 +160,7 @@
     addExternalEntity
 	= ( ( getDTDAttrValue a_name
 	      >>>
-	      traceString 2 (("processGeneralEntity: external entity definition for " ++) . show)
+	      traceValue 2 (("processGeneralEntity: external entity definition for " ++) . show)
             )
 	    &&&
 	    getDTDAttrValue a_url 			-- the absolute URL, not the relative in attr: k_system
@@ -174,7 +174,7 @@
     addUnparsedEntity
 	= getDTDAttrValue a_name
 	  >>>
-	  traceString 2 (("processGeneralEntity: unparsed entity definition for " ++) . show)
+	  traceValue 2 (("processGeneralEntity: unparsed entity definition for " ++) . show)
           >>>
 	  applyA (arr (insertEntity substUnparsed))
 	  >>>
@@ -236,7 +236,7 @@
     substEntityRef
 	= applyA ( ( ( getEntityRef				-- get the entity name and the env
 		       >>>					-- and compute the arrow to be applied
-		       traceString 2 (("processGeneralEntity: entity reference for entity " ++) . show)
+		       traceValue 2 (("processGeneralEntity: entity reference for entity " ++) . show)
 		       >>>
 		       traceMsg 3 ("recursion list = " ++ show recl)
 		     )
diff --git a/src/Text/XML/HXT/Arrow/Namespace.hs b/src/Text/XML/HXT/Arrow/Namespace.hs
--- a/src/Text/XML/HXT/Arrow/Namespace.hs
+++ b/src/Text/XML/HXT/Arrow/Namespace.hs
@@ -2,13 +2,12 @@
 
 {- |
    Module     : Text.XML.HXT.Arrow.Namespace
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: Namespace.hs,v 1.13 2006/11/12 14:52:59 hxml Exp $
 
    namespace specific arrows
 
@@ -41,13 +40,10 @@
 import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 
-import Data.Maybe
-    ( isNothing
-    , fromJust
-    )
-
-import Data.List
-    ( nub )
+import Data.Maybe		    ( isNothing
+				    , fromJust
+				    )
+import Data.List		    ( nub )
 
 -- ------------------------------------------------------------
 
@@ -56,14 +52,7 @@
 isNamespaceDeclAttr	:: ArrowXml a => a XmlTree XmlTree
 isNamespaceDeclAttr
     = fromLA $
-      (getAttrName >>> isA isNsQName) `guards` this
-      where
-      isNsQName n
-	  = px == a_xmlns
-	    &&
-	    (null lp || (not . null . tail $ lp))
-	  where
-	  (px, lp) = span (/= ':') . qualifiedName $ n
+      (getAttrName >>> isA isNameSpaceName) `guards` this
 
 -- | get the namespace prefix and the namespace URI out of
 -- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')
@@ -145,7 +134,7 @@
 
 cleanupNamespaces	:: LA XmlTree (String, String) -> LA XmlTree XmlTree
 cleanupNamespaces collectNamespaces
-    = renameNamespaces $< (listA collectNamespaces >>^ nub)
+    = renameNamespaces $< (listA collectNamespaces >>^ (toNsEnv >>> nub))
     where
     renameNamespaces :: NsEnv -> LA XmlTree XmlTree
     renameNamespaces env
@@ -163,11 +152,11 @@
 	where
 	renamePrefix	:: QName -> QName
 	renamePrefix n
-	    | null uri		= n
+	    | isNullXName uri	= n
 	    | isNothing newPx	= n
-	    | otherwise		= n {namePrefix = fromJust newPx}
+	    | otherwise		= setNamePrefix' (fromJust newPx) n
 	    where
-	    uri   = namespaceUri n
+	    uri   = namespaceUri' n
 	    newPx = lookup uri revEnv1
 	    
         revEnv1 = map (\ (x, y) -> (y, x)) env1
@@ -175,13 +164,13 @@
 	env1 :: NsEnv
 	env1 = newEnv [] uris
 
-	uris :: [String]
+	uris :: [XName]
 	uris = nub . map snd $ env
 
-	genPrefixes :: [String]
-        genPrefixes = map (("ns" ++) . show) [(0::Int)..]
+	genPrefixes :: [XName]
+        genPrefixes = map (newXName . ("ns" ++) . show) [(0::Int)..]
 
-        newEnv	:: NsEnv -> [String] -> NsEnv
+        newEnv	:: NsEnv -> [XName] -> NsEnv
 	newEnv env' []
 	    = env'
 
@@ -225,7 +214,7 @@
 
     extendEnv	:: NsEnv -> XmlTree -> NsEnv
     extendEnv env' t'
-	= addEntries newDecls env'
+	= addEntries (toNsEnv newDecls) env'
 	where
 	newDecls = runLA ( getAttrl >>> getNamespaceDecl ) t'
 
@@ -270,12 +259,13 @@
     nsAttrl		:: [LA XmlTree XmlTree]
     nsAttrl		= map nsDeclToAttr env
 
-    nsDeclToAttr	:: (String, String) -> LA XmlTree XmlTree
+    nsDeclToAttr	:: (XName, XName) -> LA XmlTree XmlTree
     nsDeclToAttr (n, uri)
-	= mkAttr qn (txt uri)
+	= mkAttr qn (txt (show uri))
 	where
 	qn :: QName
-	qn = mkNsName (a_xmlns ++ (if null n then "" else ':' : n)) xmlnsNamespace
+	qn | isNullXName n	= mkQName' nullXName  xmlnsXName xmlnsNamespaceXName
+	   | otherwise		= mkQName' xmlnsXName n          xmlnsNamespaceXName
 
 -- -----------------------------------------------------------------------------
 
@@ -288,7 +278,10 @@
 -- The arrow may be applied repeatedly if neccessary.
 
 propagateNamespaces	:: ArrowXml a => a XmlTree XmlTree
-propagateNamespaces	= fromLA $ propagateNamespaceEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]
+propagateNamespaces	= fromLA $
+			  propagateNamespaceEnv [ (xmlXName,   xmlNamespaceXName)
+						, (xmlnsXName, xmlnsNamespaceXName)
+						]
 
 -- |
 -- attaches the namespace info given by the namespace table
@@ -308,7 +301,7 @@
 
     attachNamespaceUriToAttr	:: NsEnv -> LA XmlTree XmlTree
     attachNamespaceUriToAttr attrEnv
-	= ( ( getName >>> isA hasPrefixLocalPart )
+	= ( ( getQName >>> isA (not . null . namePrefix) )
 	    `guards`
 	    changeAttrName (setNamespace attrEnv)
 	  )
@@ -317,16 +310,6 @@
 	    `when`
 	    hasName a_xmlns
 	  )
-	where
-	hasPrefixLocalPart	:: String -> Bool
-	hasPrefixLocalPart s
-	    = ( ':' `elem` s )				-- small optimization: only do some string handling when is ':' found
-	      &&
-	      ( let					-- check none empty prefix and local part
-		(px, lp) = span (/= ':') s
-		in
-		not (null px) && not (null (drop 1 lp))
-	      )
 
 -- -----------------------------------------------------------------------------
 
@@ -334,7 +317,7 @@
 -- validate the namespace constraints in a whole tree.
 --
 -- Result is the list of errors concerning namespaces.
--- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespaces'
+-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'
 -- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.
 
 validateNamespaces	:: ArrowXml a => a XmlTree XmlTree
@@ -420,7 +403,7 @@
     where
     nsError	:: (String -> String) -> LA XmlTree XmlTree
     nsError msg
-	= getName >>> nsErr msg
+	= (getQName >>> arr show) >>> nsErr msg
 
     nsErr	:: (String -> String) -> LA String XmlTree
     nsErr msg	= arr msg >>> mkError c_err
diff --git a/src/Text/XML/HXT/Arrow/Pickle/Xml.hs b/src/Text/XML/HXT/Arrow/Pickle/Xml.hs
--- a/src/Text/XML/HXT/Arrow/Pickle/Xml.hs
+++ b/src/Text/XML/HXT/Arrow/Pickle/Xml.hs
@@ -2,35 +2,34 @@
 
 {- |
    Module     : Text.XML.HXT.Arrow.Pickle.Xml
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id$
 
-Pickler functions for converting between user defined data types
-and XmlTree data. Usefull for persistent storage and retreival
-of arbitray data as XML documents
+   Pickler functions for converting between user defined data types
+   and XmlTree data. Usefull for persistent storage and retreival
+   of arbitray data as XML documents
 
-This module is an adaptation of the pickler combinators
-developed by Andrew Kennedy
-( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )
+   This module is an adaptation of the pickler combinators
+   developed by Andrew Kennedy
+   ( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )
 
-The difference to Kennedys approach is that the target is not
-a list of Chars but a list of XmlTrees. The basic picklers will
-convert data into XML text nodes. New are the picklers for
-creating elements and attributes.
+   The difference to Kennedys approach is that the target is not
+   a list of Chars but a list of XmlTrees. The basic picklers will
+   convert data into XML text nodes. New are the picklers for
+   creating elements and attributes.
 
-One extension was neccessary: The unpickling may fail.
-Therefore the unpickler has a Maybe result type.
-Failure is used to unpickle optional elements
-(Maybe data) and lists of arbitray length
+   One extension was neccessary: The unpickling may fail.
+   Therefore the unpickler has a Maybe result type.
+   Failure is used to unpickle optional elements
+   (Maybe data) and lists of arbitray length
 
-There is an example program demonstrating the use
-of the picklers for a none trivial data structure.
-(see \"examples\/arrows\/pickle\" directory)
+   There is an example program demonstrating the use
+   of the picklers for a none trivial data structure.
+   (see \"examples\/arrows\/pickle\" directory)
 
 -}
 
@@ -77,12 +76,12 @@
 dropCont	:: St -> St
 dropCont s	= s { contents = drop 1 (contents s) }
 
-getAtt		:: String -> St -> Maybe XmlTree
-getAtt name s
+getAtt		:: QName -> St -> Maybe XmlTree
+getAtt qn s
     = listToMaybe $
       runLA ( arrL attributes
 	      >>>
-	      isAttr >>> hasName name
+	      isAttr >>> hasQName qn
 	    ) s
 
 getCont		:: St -> Maybe XmlTree
@@ -494,41 +493,48 @@
 
 -- | Pickler for wrapping\/unwrapping data into an XML element
 --
--- Extra parameter is the element name. THE pickler for constructing
+-- Extra parameter is the element name given as a QName. THE pickler for constructing
 -- nested structures
 --
 -- Example:
 --
--- > xpElem "number" $ xpickle
+-- > xpElemQN (mkName "number") $ xpickle
 --
 -- will map an (42::Int) onto
 --
 -- > <number>42</number>
 
-xpElem	:: String -> PU a -> PU a
-xpElem name pa
+xpElemQN	:: QName -> PU a -> PU a
+xpElemQN qn pa
     = PU { appPickle   = ( \ (a, st) ->
 			   let
 	                   st' = appPickle pa (a, emptySt)
 			   in
-			   addCont (XN.mkElement (mkName name) (attributes st') (contents st')) st
+			   addCont (XN.mkElement qn (attributes st') (contents st')) st
 			 )
 	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)
-	 , theSchema   = scElem name (theSchema pa)
+	 , theSchema   = scElem (qualifiedName qn) (theSchema pa)
 	 }
       where
       unpickleElement st
 	  = do
 	    t <- getCont st
 	    n <- XN.getElemName t
-	    if qualifiedName n /= name
-	       then fail "element name does not match"
+	    if n /= qn
+	       then fail ("element name " ++ show n ++ " does not match" ++ show qn)
 	       else do
 		    let cs = XN.getChildren t
 		    al <- XN.getAttrl t
 		    res <- fst . appUnPickle pa $ St {attributes = al, contents = cs}
 		    return (Just res, dropCont st)
 
+-- | convenient Pickler for xpElemQN
+--
+-- > xpElem n = xpElemQN (mkName n)
+
+xpElem		:: String -> PU a -> PU a
+xpElem		= xpElemQN . mkName
+
 -- ------------------------------------------------------------
 
 -- | Pickler for wrapping\/unwrapping data into an XML element with an attribute with given value
@@ -590,25 +596,32 @@
 --
 -- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler
 
-xpAttr	:: String -> PU a -> PU a
-xpAttr name pa
+xpAttrQN	:: QName -> PU a -> PU a
+xpAttrQN qn pa
     = PU { appPickle   = ( \ (a, st) ->
 			   let
 			   st' = appPickle pa (a, emptySt)
 			   in
-			   addAtt (XN.mkAttr (mkName name) (contents st')) st
+			   addAtt (XN.mkAttr qn (contents st')) st
 			 )
 	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleAttr st)
-	 , theSchema   = scAttr name (theSchema pa)
+	 , theSchema   = scAttr (qualifiedName qn) (theSchema pa)
 	 }
       where
       unpickleAttr st
 	  = do
-	    a <- getAtt name st
+	    a <- getAtt qn st
 	    let av = XN.getChildren a
 	    res <- fst . appUnPickle pa $ St {attributes = [], contents = av}
 	    return (Just res, st)	-- attribute is not removed from attribute list,
 					-- attributes are selected by name
+
+-- | convenient Pickler for xpAttrQN
+--
+-- > xpAttr n = xpAttrQN (mkName n)
+
+xpAttr		:: String -> PU a -> PU a
+xpAttr		= xpAttrQN . mkName
 
 -- | Add an optional attribute for an optional value (Maybe a).
 
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
@@ -10,9 +10,9 @@
    Portability: portable
    Version    : $Id: ProcessDocument.hs,v 1.3 2006/08/30 16:20:52 hxml Exp $
 
-Compound arrows for reading, parsing, validating and writing XML documents
+   Compound arrows for reading, parsing, validating and writing XML documents
 
-All arrows use IO and a global state for options, errorhandling, ...
+   All arrows use IO and a global state for options, errorhandling, ...
 -}
 
 -- ------------------------------------------------------------
@@ -131,7 +131,7 @@
 
 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) )
+    = ( perform ( getAttrValue a_source >>> traceValue 1 (("parseHtmlDoc: parse HTML document " ++) . show) )
 	>>>
 	replaceChildren ( ( getAttrValue a_source		-- get source name
 			    &&&
@@ -151,7 +151,7 @@
 	>>>
 	perform ( getAttrValue a_source
 		  >>>
-		  traceString 1 (\ src -> "parse HTML document " ++ show src ++ " finished")
+		  traceValue 1 (\ src -> "parse HTML document " ++ show src ++ " finished")
 		)
       )
       `when` documentStatusOk
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
@@ -109,6 +109,10 @@
 
 - 'a_use_curl' : obsolete and ignored, HTTP acccess is always done with curl bindings for libcurl
 
+- 'a_strict_input' : file input is done strictly using the 'Data.ByteString' input functions. This ensures correct closing of files, especially when working with
+                     the tagsoup parser and not processing the whole input data. Default is off. The @ByteString@ input usually is not faster than the buildin @hGetContents@
+		     for strings.
+
 - 'a_options_curl' : deprecated but for compatibility reasons still supported.
                      More options passed to the curl binding.
                      Instead of using this option to set a whole bunch of options at once for curl
@@ -147,11 +151,12 @@
 >              ] ""
 
 reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',
-parsing is done with tagsoup parser
+parsing is done with tagsoup parser, but input is read strictly
 
 > readDocument [ (a_encoding, isoLatin1)
 >              , (a_mime_type,    "/etc/mime.types")
->              , (a_tagsoup,    "1")
+>              , (a_tagsoup,      "1")
+>              , (a_strict_input, "1")
 >              ] "test.svg"
 
 reads an SVG document from standard input, sets the mime type by looking in the system mimetype config file, default encoding is 'isoLatin1',
@@ -198,6 +203,7 @@
     defaultOptions
 	= [ ( a_parse_html,		  v_0 )
 	  , ( a_tagsoup,		  v_0 )
+	  , ( a_strict_input,		  v_0 )
 	  , ( a_validate,		  v_1 )
 	  , ( a_issue_warnings,		  v_1 )
 	  , ( a_check_namespaces,	  v_0 )
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
@@ -2,15 +2,14 @@
 
 {- |
    Module     : Text.XML.HXT.Arrow.WriteDocument
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-9 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: WriteDocument.hs,v 1.8 2006/11/09 20:27:42 hxml Exp $
 
-Compound arrow for writing XML documents
+   Compound arrow for writing XML documents
 
 -}
 
@@ -32,19 +31,18 @@
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
-import Text.XML.HXT.Arrow.Edit
-    ( indentDoc
-    , removeDocWhiteSpace
-    , treeRepOfXmlDoc
-    , haskellRepOfXmlDoc
-    , escapeXmlDoc
-    , escapeHtmlDoc
-    )
+import Text.XML.HXT.Arrow.Edit			( escapeHtmlDoc
+						, escapeXmlDoc
+						, haskellRepOfXmlDoc
+						, indentDoc
+						, preventEmptyElements
+						, removeDocWhiteSpace
+						, treeRepOfXmlDoc
+						)
 
-import Text.XML.HXT.Arrow.DocumentOutput
-    ( putXmlDocument
-    , encodeDocument
-    )
+import Text.XML.HXT.Arrow.DocumentOutput	( putXmlDocument
+						, encodeDocument
+						)
 
 -- ------------------------------------------------------------
 
@@ -73,6 +71,11 @@
 
 - 'a_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars
 
+- 'a_no_empty_elements' : do not write the short form \<name .../\> for empty elements. When 'a_output_html' is set,
+                          the always empty HTML elements are still written in short form, but not the others, as e.g. the script element.
+                          Empty script elements, like \<script href=\"...\"/\>, are always a problem for firefox and others.
+                          When XML output is generated with this option, all empty elements are written in the long form.
+
 - 'a_no_xml_pi' : suppress generation of \<?xml ... ?\> processing instruction
 
 - 'a_show_tree' : show tree representation of document (for debugging)
@@ -158,6 +161,9 @@
       >>>
       format
     where
+    formatEmptyElems
+	| hasOption a_no_empty_elements = preventEmptyElements
+	| otherwise                     = const this
     indent
 	| hasOption a_indent		= indentDoc			-- document indentation
 	| hasOption a_remove_whitespace	= removeDocWhiteSpace		-- remove all whitespace between tags
@@ -166,12 +172,16 @@
     format
 	| hasOption a_show_tree		= treeRepOfXmlDoc
 	| hasOption a_show_haskell	= haskellRepOfXmlDoc
-	| hasOption a_output_html	= escapeHtmlDoc			-- escape al XML and HTML chars >= 128
+	| hasOption a_output_html	= formatEmptyElems True
 					  >>>
+					  escapeHtmlDoc			-- escape al XML and HTML chars >= 128
+					  >>>
 					  encodeDocument		-- convert doc into text with respect to output encoding with ASCII as default
 					    suppressXmlPi ( lookupDef usAscii a_output_encoding options )
-	| hasOption a_output_xml	= escapeXmlDoc			-- escape lt, gt, amp, quot, 
+	| hasOption a_output_xml	= formatEmptyElems False
 					  >>>
+					  escapeXmlDoc			-- escape lt, gt, amp, quot, 
+					  >>>
 					  encodeDocument		-- convert doc into text with respect to output encoding
 					    suppressXmlPi ( lookupDef "" a_output_encoding options )
 	| otherwise			= this
@@ -191,6 +201,7 @@
 	      , ( a_show_haskell,	v_0 )
 	      , ( a_output_html,	v_0 )
 	      , ( a_no_xml_pi,          v_0 )
+	      , ( a_no_empty_elements,  v_0 )
 	      ]
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Arrow/XPath.hs b/src/Text/XML/HXT/Arrow/XPath.hs
--- a/src/Text/XML/HXT/Arrow/XPath.hs
+++ b/src/Text/XML/HXT/Arrow/XPath.hs
@@ -83,7 +83,7 @@
 
 -- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names
 
-getXPathTreesInDocWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesInDocWithNsEnv		:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
 getXPathTreesInDocWithNsEnv env query	= canonicalizeForXPath
 					  >>>
 					  arrL (PT.getXPathSubTreesWithNsEnv env query)
@@ -106,7 +106,7 @@
 
 -- | Same as 'getXPathTrees' but with namespace environment for the XPath names
 
-getXPathTreesWithNsEnv			:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesWithNsEnv			:: ArrowXml a => Attributes -> 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
@@ -122,7 +122,7 @@
 
 -- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names
 
-getXPathNodeSetWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlNodeSet
+getXPathNodeSetWithNsEnv		:: ArrowXml a => Attributes -> String -> a XmlTree XmlNodeSet
 getXPathNodeSetWithNsEnv nsEnv query	= arr (PT.getXPathNodeSetWithNsEnv nsEnv query)
 
 -- ------------------------------------------------------------
@@ -226,7 +226,7 @@
 
 -- | Same as 'processXPathTrees' but with namespace environment for the XPath names
 
-processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> NsEnv -> String -> a XmlTree XmlTree
+processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> Attributes -> String -> a XmlTree XmlTree
 processXPathTreesWithNsEnv f nsEnv query
     = choiceA
       [ isRoot :-> processChildren pns
diff --git a/src/Text/XML/HXT/Arrow/XPathSimple.hs b/src/Text/XML/HXT/Arrow/XPathSimple.hs
--- a/src/Text/XML/HXT/Arrow/XPathSimple.hs
+++ b/src/Text/XML/HXT/Arrow/XPathSimple.hs
@@ -42,42 +42,37 @@
 module Text.XML.HXT.Arrow.XPathSimple
 where
 
+-- import qualified Debug.Trace as T
+
 import Control.Monad
 import Control.Arrow.ListArrows
 
 import Data.Maybe
 
-import Text.ParserCombinators.Parsec
-    ( runParser )
+import Text.ParserCombinators.Parsec		( runParser )
 
 import Text.XML.HXT.DOM.Interface
 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 qualified Text.XML.HXT.Arrow.XPath as XP	( getXPathTreesWithNsEnv
+						)
+import Text.XML.HXT.Arrow.Edit			( canonicalizeForXPath
+						)
 
-import Text.XML.HXT.XPath.XPathParser
-    ( parseXPath
-    , parseNumber
-    )
+import Text.XML.HXT.XPath.XPathDataTypes	( XPNumber (..)
+						, Expr (..)
+						, Op (..)
+						, XPathNode (..)
+						, LocationPath (..)
+						, Path (..)
+						, XStep (..)
+						, AxisSpec (..)
+						, NodeTest (..)
+						, XPathValue (..)
+						)
+import Text.XML.HXT.XPath.XPathParser		( parseXPath
+						, parseNumber
+						)
 
 -- ----------------------------------------
 
@@ -90,7 +85,7 @@
 -- |
 -- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv'
 
-getXPathTreesInDocWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesInDocWithNsEnv		:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
 getXPathTreesInDocWithNsEnv env query	= canonicalizeForXPath
 					  >>>
 					  tryGetXPath env query
@@ -103,11 +98,11 @@
 -- |
 -- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv'
 
-getXPathTreesWithNsEnv			:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesWithNsEnv			:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
 getXPathTreesWithNsEnv			= tryGetXPath
 
 
-tryGetXPath				:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+tryGetXPath				:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
 tryGetXPath env query			= ( listA (getXPathTreesWithNsEnvSimple env query)
 					    &&&
 					    listA (   XP.getXPathTreesWithNsEnv env query)
@@ -123,25 +118,26 @@
 -- 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
+getXPathTreesWithNsEnvSimple		:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
+getXPathTreesWithNsEnvSimple env s	= fromLA $ getXP (toNsEnv env) s
 
 -- ----------------------------------------
 
-getXP			:: NsEnv -> String -> LA XmlTree XmlTree
-getXP env s		= either (err
-				  .
-				  (("Syntax error in XPath expression " ++ show 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
+					   )
+				  -- . ( \ e -> T.trace (("getXP: xp = "++) . show $ e) e)
 				  .
-				  show . show
-				 ) (fromMaybe (err ( "XPath expression " ++ show s ++
-						     " too complicated for simple arrow evaluation"
-						   )
-					      ) . compXPath
-				   )
-			  .
-			  runParser parseXPath env ""
-			  $ s
+				  runParser parseXPath env ""
+				  $ s
 
 -- ----------------------------------------
 
diff --git a/src/Text/XML/HXT/Arrow/XmlArrow.hs b/src/Text/XML/HXT/Arrow/XmlArrow.hs
--- a/src/Text/XML/HXT/Arrow/XmlArrow.hs
+++ b/src/Text/XML/HXT/Arrow/XmlArrow.hs
@@ -2,13 +2,12 @@
 
 {- |
    Module     : Text.XML.HXT.Arrow.XmlArrow
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-9 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: XmlArrow.hs,v 1.34 2006/11/02 16:43:39 hxml Exp $
 
    Basic arrows for processing XML documents
 
@@ -22,25 +21,26 @@
     ( module Text.XML.HXT.Arrow.XmlArrow )
 where
 
-import Data.Maybe
+import           Control.Arrow			-- classes
+import           Control.Arrow.ArrowList
+import           Control.Arrow.ArrowIf
+import           Control.Arrow.ArrowTree
 
-import Control.Arrow			-- classes
-import Control.Arrow.ArrowList
-import Control.Arrow.ArrowIf
-import Control.Arrow.ArrowTree
+import           Control.Arrow.ListArrow		-- arrow types
+import           Control.Arrow.StateListArrow
+import           Control.Arrow.IOListArrow
+import           Control.Arrow.IOStateListArrow
 
-import Control.Arrow.ListArrow		-- arrow types
-import Control.Arrow.StateListArrow
-import Control.Arrow.IOListArrow
-import Control.Arrow.IOStateListArrow
+import           Data.Maybe
 
 import           Text.XML.HXT.DOM.Interface
-import           Text.XML.HXT.DOM.Unicode
-    ( isXmlSpaceChar
-    )
+import           Text.XML.HXT.DOM.Unicode	( isXmlSpaceChar
+						)
 import qualified Text.XML.HXT.DOM.XmlNode as XN
 import qualified Text.XML.HXT.DOM.ShowXml as XS
 
+-- ------------------------------------------------------------
+
 {- | Arrows for processing 'Text.XML.HXT.DOM.TypeDefs.XmlTree's
 
 These arrows can be grouped into predicates, selectors, constructors, and transformers.
@@ -237,21 +237,21 @@
     mkqelem		:: QName -> [a n XmlTree] -> [a n XmlTree] -> a n XmlTree
     mkqelem  n afs cfs	= mkElement n (catA afs) (catA cfs)
 
-    -- | convenient arrow for element construction with strings instead of qualified names as tagnames, see also 'mkElement' and 'mkelem'
+    -- | convenient arrow for element construction with strings instead of qualified names as element names, see also 'mkElement' and 'mkelem'
     mkelem		:: String -> [a n XmlTree] -> [a n XmlTree] -> a n XmlTree
-    mkelem  n afs cfs	= mkElement (mkSNsName n) (catA afs) (catA cfs)
+    mkelem  n afs cfs	= mkElement (mkName n) (catA afs) (catA cfs)
 
     -- | convenient arrow for element constrution with attributes but without content, simple variant of 'mkelem' and 'mkElement'
     aelem		:: String -> [a n XmlTree]                  -> a n XmlTree
-    aelem n afs		= catA afs >. \ al -> XN.mkElement (mkSNsName n) al []
+    aelem n afs		= catA afs >. \ al -> XN.mkElement (mkName n) al []
 
     -- | convenient arrow for simple element constrution without attributes, simple variant of 'mkelem' and 'mkElement'
     selem		:: String                  -> [a n XmlTree] -> a n XmlTree
-    selem n cfs		= catA cfs >.         XN.mkElement (mkSNsName n) []
+    selem n cfs		= catA cfs >.         XN.mkElement (mkName n) []
 
     -- | convenient arrow for constrution of empty elements without attributes, simple variant of 'mkelem' and 'mkElement'
     eelem		:: String                                   -> a n XmlTree
-    eelem n		= constA      (XN.mkElement (mkSNsName n) [] [])
+    eelem n		= constA      (XN.mkElement (mkName n) [] [])
 
     -- | construction of an element node with name \"\/\" for document roots
     root		::           [a n XmlTree] -> [a n XmlTree] -> a n XmlTree
@@ -263,7 +263,7 @@
 
     -- | convenient arrow for attribute constrution, simple variant of 'mkAttr'
     attr		:: String -> a n XmlTree -> a n XmlTree
-    attr		= mkAttr . mkSNsName
+    attr		= mkAttr . mkName
 
     -- constant arrows (ignoring the input) for tree construction ------------------------------
 
@@ -297,7 +297,7 @@
 
     -- | constant arrow for simple processing instructions, see 'mkPi'
     spi			:: String -> String -> a n XmlTree
-    spi piName piCont	= constA (XN.mkPi   (mkSNsName piName) [XN.mkText piCont])
+    spi piName piCont	= constA (XN.mkPi   (mkName piName) [XN.mkText piCont])
 
     -- | constant arrow for attribute nodes, attribute name is a qualified name and value is a text,
     -- | see also 'mkAttr', 'qattr', 'attr'
@@ -307,7 +307,7 @@
     -- | constant arrow for attribute nodes, attribute name and value are
     -- | given by parameters, see 'mkAttr'
     sattr		:: String -> String -> a n XmlTree
-    sattr an av		= constA (XN.mkAttr (mkSNsName an)     [XN.mkText av])
+    sattr an av		= constA (XN.mkAttr (mkName an)     [XN.mkText av])
 
     -- selector arrows --------------------------------------------------
 
diff --git a/src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs b/src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs
--- a/src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs
+++ b/src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs
@@ -101,6 +101,7 @@
       withTraceLevel,
       trace,
       traceMsg,
+      traceValue,
       traceString,
       traceSource,
       traceTree,
@@ -633,7 +634,7 @@
 setBaseURI
     = changeSysParam (\ b s -> s { xio_baseURI = b } )
       >>>
-      traceString 2 (("setBaseURI: new base URI is " ++) . show)
+      traceValue 2 (("setBaseURI: new base URI is " ++) . show)
 
 -- | read the base URI from the globale state
 
@@ -675,7 +676,7 @@
       >>>
       changeSysParam (\ b s -> s { xio_defaultBaseURI = b } )
       >>>
-      traceString 2 (("setDefaultBaseURI: new default base URI is " ++) . show)
+      traceValue 2 (("setDefaultBaseURI: new default base URI is " ++) . show)
     where
     getDir _ = do
 	       cwd <- getCurrentDirectory
@@ -768,17 +769,25 @@
 	       isA (>= level)
 	     )
 
--- | issue a string message as trace 
+-- | trace the current value transfered in a sequence of arrows.
+--
+-- The value is formated by a string conversion function. This is a substitute for
+-- the old and less general traceString function
+
+traceValue		:: Int -> (b -> String) -> IOStateArrow s b b
+traceValue level trc
+    = trace level (arr $ (('-' : "- (" ++ show level ++ ") ") ++) . trc)
+
+-- | an old alias for 'traceValue'
+
+traceString		:: Int -> (b -> String) -> IOStateArrow s b b
+traceString		= traceValue
+
+-- | issue a string message as trace
+
 traceMsg	:: Int -> String -> IOStateArrow s b b
 traceMsg level msg
-    = perform ( trace level $
-		constA ('-' : "- (" ++ show level ++ ") " ++ msg)
-	      )
-
--- | issue the string input of an arrow
-traceString	:: Int -> (String -> String) -> IOStateArrow s String String
-traceString level f
-    = perform (applyA (arr f >>> arr (traceMsg level)))
+    = traceValue level (const msg)
 
 -- | issue the source representation of a document if trace level >= 3
 --
@@ -832,7 +841,7 @@
 			applyA (arr formatParam)
 		      )
 		>>>
-		traceString 2 ("global state:\n" ++)
+		traceValue 2 ("global state:\n" ++)
 	      )
       where
       -- formatParam	:: (String, XmlTrees) -> IOStateArrow s b1 XmlTree
diff --git a/src/Text/XML/HXT/DOM/Interface.hs b/src/Text/XML/HXT/DOM/Interface.hs
--- a/src/Text/XML/HXT/DOM/Interface.hs
+++ b/src/Text/XML/HXT/DOM/Interface.hs
@@ -20,7 +20,6 @@
 module Text.XML.HXT.DOM.Interface
     ( module Text.XML.HXT.DOM.XmlKeywords
     , module Text.XML.HXT.DOM.TypeDefs
-    , module Text.XML.HXT.DOM.NamespacePredicates
     , module Text.XML.HXT.DOM.Util
     , module Text.XML.HXT.DOM.XmlOptions
     , module Text.XML.HXT.DOM.MimeTypes
@@ -29,7 +28,6 @@
 
 import Text.XML.HXT.DOM.XmlKeywords		-- constants
 import Text.XML.HXT.DOM.TypeDefs		-- XML Tree types
-import Text.XML.HXT.DOM.NamespacePredicates
 import Text.XML.HXT.DOM.Util
 import Text.XML.HXT.DOM.XmlOptions		-- predefined options
 import Text.XML.HXT.DOM.MimeTypes		-- mime types related stuff
diff --git a/src/Text/XML/HXT/DOM/MimeTypes.hs b/src/Text/XML/HXT/DOM/MimeTypes.hs
--- a/src/Text/XML/HXT/DOM/MimeTypes.hs
+++ b/src/Text/XML/HXT/DOM/MimeTypes.hs
@@ -18,11 +18,14 @@
 module Text.XML.HXT.DOM.MimeTypes
 where
 
-import           Control.Monad (mplus)
+import           Control.Monad		( mplus )
 
+import qualified Data.ByteString	as B
+import qualified Data.ByteString.Char8  as C
+
 import           Data.Char
 import           Data.List
-import qualified Data.Map as M
+import qualified Data.Map		as M
 import           Data.Maybe
 
 import           System.IO
@@ -93,9 +96,8 @@
 readMimeTypeTable	:: FilePath -> IO MimeTypeTable
 readMimeTypeTable inp
     = do
-      h <- openFile inp ReadMode
-      c <- hGetContents h
-      return . M.fromList . parseMimeTypeTable $ c
+      cb <- B.readFile inp
+      return . M.fromList . parseMimeTypeTable . C.unpack $ cb
 
 parseMimeTypeTable	:: String -> [(String, String)]
 parseMimeTypeTable
diff --git a/src/Text/XML/HXT/DOM/NamespacePredicates.hs b/src/Text/XML/HXT/DOM/NamespacePredicates.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/NamespacePredicates.hs
+++ /dev/null
@@ -1,128 +0,0 @@
--- |
--- basic Namespace and QName predicates and functions
---
--- $Id: NamespacePredicates.hs,v 1.3 2006/11/12 14:53:00 hxml Exp $
---
-
-module Text.XML.HXT.DOM.NamespacePredicates
-    ( module Text.XML.HXT.DOM.NamespacePredicates
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTreeTypes		-- NTree and XNode types
-import Text.XML.HXT.DOM.XmlKeywords		-- keywords for DTD
-
-import Text.XML.HXT.DOM.Unicode
-    ( isXmlNCNameStartChar
-    , isXmlNCNameChar
-    )
-
--- -----------------------------------------------------------------------------
---
-
--- |
--- Compute the name prefix and the namespace uri for a qualified name.
---
--- This function does not test whether the name is a wellformed qualified name.
--- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,
--- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.
-
-setNamespace	:: NsEnv -> QName -> QName
-setNamespace nst n
-    = uncurry ns . span (/= ':') $ qn
-    where
-    qn = qualifiedName n	-- using qualifiedName instead of localPart enables recomputing of setNamespace
-
-    ns :: String -> String -> QName
-    ns lp ""					-- no ":" found in name, use default namespace uri
-	= mkQName "" lp (lookup1 "" 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	= mkQName "" a_xmlns xmlnsNamespace
-
--- -----------------------------------------------------------------------------
---
-
--- |
--- test for wellformed NCName, rule [4] XML Namespaces
-
-isNCName	:: String -> Bool
-isNCName []
-    = False
-isNCName n
-    = and ( zipWith ($)
-	    (isXmlNCNameStartChar : repeat isXmlNCNameChar)
-	    n
-	  )
-
--- |
--- test for wellformed QName, rule [6] XML Namespaces
--- predicate is used in filter 'valdateNamespaces'.
-
-isWellformedQualifiedName	:: String -> Bool
-isWellformedQualifiedName s
-    | null lp
-	= isNCName px
-    | otherwise
-	= isNCName px && isNCName (tail lp)
-    where
-    (px, lp) = span (/= ':') s
-
--- |
--- test for wellformed QName values.
--- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.
--- predicate is used in filter 'valdateNamespaces'.
-
-isWellformedQName	:: QName -> Bool
-isWellformedQName n
-    = isNCName lp				-- rule [8] XML Namespaces
-      &&
-      ( null px					-- rule [6] XML Namespaces
-	||
-	isNCName px				-- rule [7] XML Namespaces
-      )
-    where
-    px = namePrefix n
-    lp = localPart n
-
--- |
--- test for a wellformed namespace declaration
--- all namespace prefixes starting with \"xml\" are reserved for XML related definitions.
--- predicate is used in filter 'valdateNamespaces'.
-
-isWellformedNSDecl	:: QName -> Bool
-isWellformedNSDecl n
-    = null px
-      ||
-      px /= a_xmlns
-      ||
-      (take 3 lp) /= a_xml
-    where
-    lp = localPart  n
-    px = namePrefix n
-
--- |
--- 
--- predicate is used in filter 'valdateNamespaces'.
-
-isDeclaredNamespace	:: QName -> Bool
-isDeclaredNamespace n
-    | null px					-- no namespace used
-	= True
-    | px == a_xmlns				-- "xmlns" has a predefined namespace uri
-	= ns == xmlnsNamespace
-    | px == a_xml				-- "xml" has a predefiend namespace"
-	= ns == xmlNamespace
-    | otherwise					-- namespace values are not empty
-	= (not . null) ns
-    where
-    px = namePrefix   n
-    ns = namespaceUri n
-
--- -----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/QualifiedName.hs b/src/Text/XML/HXT/DOM/QualifiedName.hs
--- a/src/Text/XML/HXT/DOM/QualifiedName.hs
+++ b/src/Text/XML/HXT/DOM/QualifiedName.hs
@@ -16,17 +16,100 @@
 -- ------------------------------------------------------------
 
 module Text.XML.HXT.DOM.QualifiedName
-    ( module Text.XML.HXT.DOM.QualifiedName
+    ( QName
+    , XName
+    , NsEnv
+
+    , mkQName
+    , mkName
+    , mkNsName
+    , mkSNsName
+    , mkPrefixLocalPart
+
+    , equivQName
+    , equivUri
+    , equalQNameBy
+
+    , namePrefix
+    , localPart
+    , namespaceUri
+
+    , newXName
+    , nullXName
+    , isNullXName
+
+    , mkQName'
+    , namePrefix'
+    , localPart'
+    , namespaceUri'
+
+    , setNamePrefix'
+    , setLocalPart'
+    , setNamespaceUri'
+
+    , qualifiedName
+    , universalName
+    , universalUri
+    , buildUniversalName
+
+    , normalizeNsUri
+
+    , setNamespace                      -- namespace related functions
+    , isNCName
+    , isWellformedQualifiedName
+    , isWellformedQName
+    , isWellformedNSDecl
+    , isWellformedNameSpaceName
+    , isNameSpaceName
+    , isDeclaredNamespace
+
+    , xmlNamespaceXName
+    , xmlXName
+    , xmlnsNamespaceXName
+    , xmlnsXName
+    , xmlnsQN
+
+    , toNsEnv
     )
 
 where
-import Control.Parallel.Strategies
 
-import Data.Char		(toLower)
-import Data.Typeable
+{-
+import           Debug.Trace
+ -}
 
+import           Control.Arrow                  ( (***) )
+
+import           Control.Concurrent.MVar
+import           Control.Parallel.Strategies
+
+import           Data.AssocList
+import           Data.Char                      ( toLower )
+import           Data.List                      ( isPrefixOf )
+import qualified Data.Map               as M
+import           Data.Maybe
+import           Data.Typeable
+
+import           System.IO.Unsafe               ( unsafePerformIO )
+
+import           Text.XML.HXT.DOM.XmlKeywords   ( a_xml
+                                                , a_xmlns
+                                                , xmlNamespace
+                                                , xmlnsNamespace
+                                                )
+
+import           Text.XML.HXT.DOM.Unicode       ( isXmlNCNameStartChar
+                                                , isXmlNCNameChar
+                                                )
+
 -- -----------------------------------------------------------------------------
---
+
+-- | XML names are represented by Strings, but these strings do not mix up with normal strings.
+-- Names are always reduced to normal form, and they are stored internally in a name cache
+-- for sharing equal names by the same data structure
+
+type XName      = Atom
+
 -- |
 -- Namespace support for element and attribute names.
 --
@@ -36,179 +119,419 @@
 -- 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)
+data QName      = LP ! XName
+                | PX ! XName ! QName
+                | NS ! XName ! QName
+             deriving (Ord, Show, Read, Typeable)
 
+-- |
+-- Type for the namespace association list, used when propagating namespaces by
+-- modifying the 'QName' values in a tree
+
+type NsEnv = AssocList XName XName
+
+-- -----------------------------------------------------------------------------
+
 -- | 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
+    (LP lp1)     == (LP lp2)            = lp1 == lp2
+    (PX px1 qn1) == (PX px2 qn2)        = px1 == px2 && qn1== qn2
+    (NS ns1 qn1) == (NS ns2 qn2)        = ns1 == ns2 && localPart' qn1 == localPart' qn2
+    n1@(PX _ _)  == n2@(LP _)           = qualifiedName n1 == qualifiedName n2
+    n1@(LP _)    == n2@(PX _ _)         = qualifiedName n1 == qualifiedName n2
+    _            == _                   = False
 
+-- the 4. and 5. rule are only neccessary when someone
+-- uses XML names not in a systematical way
+-- and does things like "mkName("x:y") == mkPrefixLocalPart("x","y")
+
 instance NFData QName where
-    rnf (QN np lp ns)	= rnf np `seq` rnf lp `seq` rnf ns
 
+-- -----------------------------------------------------------------------------
 
--- just for adding the module to the lib
+newXName                :: String -> XName
+newXName                = newAtom
+
+isNullXName             :: XName -> Bool
+isNullXName             = (== nullXName)
+
+nullXName               :: XName
+nullXName               = newXName ""
+
+-- | access name prefix
+
+namePrefix'             :: QName -> XName
+namePrefix' (LP _)      = nullXName
+namePrefix' (PX px _)   = px
+namePrefix' (NS _ n)    = namePrefix' n
+
+-- | access local part
+
+localPart'              :: QName -> XName
+localPart' (LP lp)      = lp
+localPart' (PX _ n)     = localPart' n
+localPart' (NS _ n)     = localPart' n
+
+-- | access namespace uri
+
+namespaceUri'           :: QName -> XName
+namespaceUri' (NS ns _) = ns
+namespaceUri' _         = nullXName
+
+namePrefix              :: QName -> String
+namePrefix              = show . namePrefix'
+
+localPart               :: QName -> String
+localPart               = show . localPart'
+
+namespaceUri            :: QName -> String
+namespaceUri            = show . namespaceUri'
+
+-- ------------------------------------------------------------
+
+-- | set name prefix
+
+setNamespaceUri'                :: XName -> QName -> QName
+setNamespaceUri' ns (NS _ n)    = if isNullXName ns
+                                  then n
+                                  else NS ns n
+setNamespaceUri' ns n           = if isNullXName ns
+                                  then n
+                                  else NS ns n
+
+-- | set local part
+
+setLocalPart'                   :: XName -> QName -> QName
+setLocalPart' lp (LP _)         = LP lp
+setLocalPart' lp (PX px n)      = PX px (setLocalPart' lp n)
+setLocalPart' lp (NS ns n)      = NS ns (setLocalPart' lp n)
+
+-- | set name prefix
+
+setNamePrefix'                  :: XName -> QName -> QName
+setNamePrefix' px (PX _ n)      = if px == nullXName
+                                  then n
+                                  else PX px n
+setNamePrefix' px n@(LP _)      = if px == nullXName
+                                  then n
+                                  else PX px n
+setNamePrefix' px (NS ns n)     = NS ns (setNamePrefix' px n)
+
+
+-- ------------------------------------------------------------
+
 -- |
 -- 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
+qualifiedName                   :: QName -> String
+qualifiedName (LP lp)           = show lp
+qualifiedName (PX px n)         = show px ++ (':' : qualifiedName n)
+qualifiedName (NS _ n)          = qualifiedName 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)
+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 (++)
+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'.
+buildUniversalName              :: (String -> String -> String) -> QName -> String
+buildUniversalName bf (NS ns n) = show ns `bf` localPart n
+buildUniversalName _  n         = localPart n
 
-mkQName	:: String -> String -> String -> QName
-mkQName p l n
-    = QN { namePrefix	= p
-	 , localPart	= l
-	 , namespaceUri	= n
-	 }
+-- ------------------------------------------------------------
+--
+-- internal XName functions
 
--- |
--- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.
+mkQName'                        :: XName -> XName -> XName -> QName
+mkQName' px lp ns
+    | isNullXName ns            =       px_lp
+    | otherwise                 = NS ns px_lp
+    where
+    px_lp
+        | isNullXName px        = LP lp
+        | otherwise             = PX px (LP lp)
 
-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'
+-- see also 'mkQName', 'mkName'
 
-mkPrefixLocalPart	:: String -> String -> QName
-mkPrefixLocalPart p l
-    = QN { namePrefix	= p
-	 , localPart	= l
-	 , namespaceUri	= ""
-	 }
+mkPrefixLocalPart               :: String -> String -> QName
+mkPrefixLocalPart px lp
+    | null px                   =                  n1
+    | otherwise                 = PX (newXName px) n1
+    where
+    n1 = LP (newXName lp)
 
 -- |
--- 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, namespace unaware name.
+-- If the name is in @prefix:localpart@ form and the prefix is not empty
+-- the name is split internally into
+-- a prefix and a local part.
 
+mkName                          :: String -> QName
+mkName n                        
+    | (':' `elem` n)
+      &&
+      not (null px)			-- more restrictive: isWellformedQualifiedName n
+                                = mkPrefixLocalPart px lp
+    | otherwise                 = mkPrefixLocalPart "" n
+    where
+    (px, (_:lp)) = span (/= ':') n
 
 -- |
--- 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'
+-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.
+-- This function can be used to build not wellformed prefix:localpart names.
+-- The XPath module uses wildcard names like @xxx:*@. These must be build with 'mkQName'
+-- and not with mkName.
 
-mkSNsName	:: String -> QName
-mkSNsName n	= mkNsName n ""
+mkQName                         :: String -> String -> String -> QName
+mkQName px lp ns
+    | null ns                   =                  n1
+    | otherwise                 = NS (newXName ns) n1
+    where
+    n1 = mkPrefixLocalPart px lp
 
--- | Empty QName
+-- ------------------------------------------------------------
 
-nullQName	:: QName
-nullQName	= QN "" "" ""
+-- |
+-- old name for 'mkName'
 
--- | 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.
+mkSNsName                       :: String -> QName
+mkSNsName                       = mkName
 
-equalQName	:: QName -> QName -> Bool
-equalQName 	= equalQNameBy (==)
+-- |
+-- 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
+    | null ns                   =                   mkName n
+    | otherwise                 = NS (newXName ns) (mkName n)
+
+-- ------------------------------------------------------------
+
 -- | 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
+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
+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)
+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
+normalizeNsUri                  :: String -> String
+normalizeNsUri                  = map toLower . stripSlash
     where
-    stripSlash ""	= ""
+    stripSlash ""               = ""
     stripSlash s
-	| last s == '/'	= init s
-	| otherwise	= s
+        | last s == '/'         = init s
+        | otherwise             = s
 
 -- -----------------------------------------------------------------------------
+
+-- Namespace predicates
+
+-- |
+-- Compute the name prefix and the namespace uri for a qualified name.
+--
+-- This function does not test whether the name is a wellformed qualified name.
+-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,
+-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.
+
+setNamespace                    :: NsEnv -> QName -> QName
+setNamespace env n@(PX px _)    = attachNS env px        n              -- none empty prefix found
+setNamespace env n@(LP _)       = attachNS env nullXName n              -- use default namespace uri
+setNamespace env (NS _ n)       = setNamespace env n
+
+attachNS                        :: NsEnv -> XName -> QName -> QName
+attachNS env px n1              = maybe n1 (\ ns -> NS ns n1) . lookup px $ env
+
+xmlnsNamespaceXName             :: XName
+xmlnsNamespaceXName             = newXName xmlnsNamespace
+
+xmlnsXName                      :: XName
+xmlnsXName                      = newXName a_xmlns
+
+xmlnsQN                         :: QName
+xmlnsQN                         = NS xmlnsNamespaceXName (LP xmlnsXName)
+
+xmlNamespaceXName               :: XName
+xmlNamespaceXName               = newXName xmlNamespace
+
+xmlXName                        :: XName
+xmlXName                        = newXName a_xml
+
+-- -----------------------------------------------------------------------------
+--
+
+-- |
+-- test for wellformed NCName, rule [4] XML Namespaces
+
+isNCName                        :: String -> Bool
+isNCName []                     = False
+isNCName n                      = and ( zipWith ($)
+                                        (isXmlNCNameStartChar : repeat isXmlNCNameChar)
+                                        n
+                                      )
+
+-- |
+-- test for wellformed QName, rule [6] XML Namespaces
+-- predicate is used in filter 'valdateNamespaces'.
+
+isWellformedQualifiedName       :: String -> Bool
+isWellformedQualifiedName s
+    | null lp                   = isNCName px
+    | otherwise                 = isNCName px && isNCName (tail lp)
+    where
+    (px, lp)                    = span (/= ':') s
+
+-- |
+-- test for wellformed QName values.
+-- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.
+-- predicate is used in filter 'valdateNamespaces'.
+
+isWellformedQName               :: QName -> Bool
+isWellformedQName (LP lp)       = isNCName . show $ lp                          -- rule [8] XML Namespaces
+isWellformedQName (PX px n)     = (isNCName . show) px                          -- rule [7] XML Namespaces
+                                  &&
+                                  isWellformedQName n
+isWellformedQName (NS _ n)      = isWellformedQName n
+
+-- |
+-- test whether an attribute name is a namesapce declaration name.
+-- If this is not the case True is the result, else
+-- the name must be a well formed namespace name:
+-- All namespace prefixes starting with \"xml\" are reserved for XML related definitions.
+-- predicate is used in filter 'valdateNamespaces'.
+
+isWellformedNSDecl              :: QName -> Bool
+isWellformedNSDecl n            = not (isNameSpaceName n)
+                                  ||
+                                  isWellformedNameSpaceName n
+
+-- |
+-- test for a namespace name to be well formed
+
+isWellformedNameSpaceName               :: QName -> Bool
+isWellformedNameSpaceName (LP lp)       = lp == xmlnsXName
+isWellformedNameSpaceName (PX px n)     = px == xmlnsXName
+                                          &&
+                                          not (null lp')
+                                          &&
+                                          not (a_xml `isPrefixOf` lp')
+                                          where
+                                          lp' = localPart n
+isWellformedNameSpaceName (NS _ n)      = isWellformedNSDecl n
+
+-- |
+-- test whether a name is a namespace declaration attribute name
+
+isNameSpaceName                 :: QName -> Bool
+isNameSpaceName (LP lp)         = lp == xmlnsXName
+isNameSpaceName (PX px _)       = px == xmlnsXName
+isNameSpaceName (NS _  n)       = isNameSpaceName n
+
+-- |
+-- 
+-- predicate is used in filter 'valdateNamespaces'.
+
+isDeclaredNamespace             :: QName -> Bool
+isDeclaredNamespace (NS ns n)   = isNS ns        n
+isDeclaredNamespace        n    = isNS nullXName n
+
+isNS                            :: XName -> QName -> Bool
+isNS _  (LP _)                  = True                          -- no namespace used
+isNS ns (PX px _)
+    | px == xmlnsXName          = ns == xmlnsNamespaceXName     -- "xmlns" has a predefined namespace uri
+    | px == xmlXName            = ns == xmlNamespaceXName       -- "xml" has a predefiend namespace"
+    | otherwise                 = ns /= nullXName               -- namespace values are not empty
+isNS ns (NS _ n)                = isNS ns n                     -- this does not occur, but warning is prevented
+
+-- -----------------------------------------------------------------------------
+
+toNsEnv                         :: AssocList String String -> NsEnv
+toNsEnv                         = map (newXName *** newXName)
+
+-- -----------------------------------------------------------------------------
+
+-- the name cache, same implementation strategy as in Data.Atom,
+-- but conversion to and from ByteString prevented
+
+type Atoms      = M.Map String String
+
+newtype Atom    = A String
+                  deriving (Eq, Ord, Typeable)
+
+-- ------------------------------------------------------------
+
+-- | the internal cache for the strings
+
+theAtoms        :: MVar Atoms
+theAtoms        = unsafePerformIO (newMVar M.empty)
+{-# NOINLINE theAtoms #-}
+
+-- | insert a bytestring into the atom cache
+
+insertAtom      :: String -> Atoms -> (Atoms, Atom)
+insertAtom s m  = maybe (M.insert {- (trace (show s) s) -} s s m, A s `demanding` rnf s)
+                        (\ s' -> (m, A s'))
+                  .
+                  M.lookup s $ m
+
+-- | creation of an @Atom@ from a @String@
+
+newAtom         :: String -> Atom
+newAtom         = unsafePerformIO . newAtom'
+{-# NOINLINE newAtom #-}
+
+-- | The internal operation running in the IO monad
+newAtom'        :: String -> IO Atom
+newAtom' s      = do
+                  m <- takeMVar theAtoms
+                  let (m', a) = insertAtom s m
+                  putMVar theAtoms m'
+                  return a
+
+instance Read Atom where
+    readsPrec p str = [ (newAtom x, y) | (x, y) <- readsPrec p str ]
+
+instance Show Atom where
+    show (A s)  = s
+
+instance NFData Atom where
+
+-----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/ShowXml.hs b/src/Text/XML/HXT/DOM/ShowXml.hs
--- a/src/Text/XML/HXT/DOM/ShowXml.hs
+++ b/src/Text/XML/HXT/DOM/ShowXml.hs
@@ -2,7 +2,7 @@
 
 {- |
    Module     : Text.XML.HXT.DOM.ShowXml
-   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   Copyright  : Copyright (C) 2008-9 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
@@ -21,15 +21,14 @@
     )
 where
 
+import Data.Maybe
 import Data.Tree.NTree.TypeDefs
 
 import Text.XML.HXT.DOM.TypeDefs		-- XML Tree types
 import Text.XML.HXT.DOM.XmlKeywords
-import Text.XML.HXT.DOM.XmlNode
-    ( mkDTDElem
-    , getDTDAttrl
-    )
-import Data.Maybe
+import Text.XML.HXT.DOM.XmlNode			( mkDTDElem
+						, getDTDAttrl
+						)
 
 -- -----------------------------------------------------------------------------
 --
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
@@ -29,7 +29,7 @@
 import Data.Tree.NTree.TypeDefs
 import Data.Typeable
 
-import Text.XML.HXT.DOM.QualifiedName hiding ( QN )
+import Text.XML.HXT.DOM.QualifiedName
 
 -- -----------------------------------------------------------------------------
 --
@@ -126,15 +126,6 @@
 -- used for storing option lists and features of DTD parts
 
 type Attributes	= AssocList String String
-
--- -----------------------------------------------------------------------------
---
-
--- |
--- Type for the namespace association list, used when propagating namespaces by
--- modifying the 'QName' values in a tree
-
-type NsEnv = AssocList String String
 
 -- -----------------------------------------------------------------------------
 --
diff --git a/src/Text/XML/HXT/DOM/Unicode.hs b/src/Text/XML/HXT/DOM/Unicode.hs
--- a/src/Text/XML/HXT/DOM/Unicode.hs
+++ b/src/Text/XML/HXT/DOM/Unicode.hs
@@ -2,13 +2,12 @@
 
 {- |
    Module     : Text.XML.HXT.DOM.Unicode
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id$
 
    Unicode and UTF-8 Conversion Functions
 
@@ -279,9 +278,9 @@
 
 isXmlPubidChar		:: Unicode -> Bool
 isXmlPubidChar c
-    = isInList c [ ('A', 'Z')
+    = isInList c [ ('0', '9')
+		 , ('A', 'Z')
 		 , ('a', 'z')
-		 , ('0', '9')
 		 ]
       ||
       ( c `elem` " \r\n-'()+,./:=?;!*#@$_%" )
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
@@ -56,6 +56,7 @@
  a_module,
  a_modifier,
  a_name,
+ a_no_empty_elements,
  a_no_xml_pi,
  a_options_curl,
  a_output_encoding,
@@ -75,6 +76,7 @@
  a_source,
  a_status,
  a_standalone,
+ a_strict_input,
  a_tagsoup,
  a_trace,
  a_type,
@@ -162,6 +164,7 @@
 a_module			= "module"
 a_modifier			= "modifier"
 a_name				= "name"
+a_no_empty_elements		= "no-empty-elements"
 a_no_xml_pi                     = "no-xml-pi"
 a_options_curl			= "options-curl"
 a_output_file			= "output-file"
@@ -181,6 +184,7 @@
 a_source			= "source"
 a_standalone			= "standalone"
 a_status			= "status"
+a_strict_input			= "strict-input"
 a_tagsoup			= "tagsoup"
 a_trace				= "trace"
 a_type				= "type"
diff --git a/src/Text/XML/HXT/DOM/XmlNode.hs b/src/Text/XML/HXT/DOM/XmlNode.hs
--- a/src/Text/XML/HXT/DOM/XmlNode.hs
+++ b/src/Text/XML/HXT/DOM/XmlNode.hs
@@ -303,7 +303,7 @@
 mkElement n al	= mkTree (mkElementNode n al)
 
 mkRoot		:: XmlTrees -> XmlTrees -> XmlTree
-mkRoot al	= mkTree (mkElementNode (mkSNsName t_root) al)
+mkRoot al	= mkTree (mkElementNode (mkName t_root) al)
 
 mkAttr		:: QName -> XmlTrees -> XmlTree
 mkAttr n	= mkTree (mkAttrNode n)
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
@@ -58,6 +58,7 @@
       , 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 and others as XML, else no parse"
       , Option ""	[a_parse_xml]			(NoArg	(att a_parse_html        v_0))	"parse input as XML, (default)"
+      , Option ""       [a_strict_input]		(NoArg  (att a_strict_input      v_1))  "read input files strictly, this ensures closing the files correctly even if not read completely"
       , 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"
@@ -112,6 +113,7 @@
       , Option "f"	[a_output_file]		(ReqArg (att a_output_file)        "FILE")	"output file for resulting document (default: stdout)"
       , Option ""	[a_output_html]	        (NoArg  (att a_output_html           v_1))	"output of none ASCII chars as HTMl entity references"
       , Option ""       [a_no_xml_pi]	        (NoArg  (att a_no_xml_pi             v_1))      ("output without <?xml ...?> processing instruction, useful in combination with --" ++ show a_output_html)
+      , Option ""       [a_no_empty_elements]   (NoArg  (att a_no_empty_elements     v_1))      "output of empty elements done in format <elem...></elem> instead of <elem/>"
       ]
     where
     att n v	= (n, v)
diff --git a/src/Text/XML/HXT/DOM/XmlTreeTypes.hs b/src/Text/XML/HXT/DOM/XmlTreeTypes.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/XmlTreeTypes.hs
+++ /dev/null
@@ -1,77 +0,0 @@
--- |
--- exports the core data types
--- and some additional types and functions
--- for compatibility with none arrow modules
---
--- Version : $Id: XmlTreeTypes.hs,v 1.6 2006/05/09 15:30:43 hxml Exp $
-
-module Text.XML.HXT.DOM.XmlTreeTypes
-    ( module Data.Tree.NTree.Filter
-    , module Text.XML.HXT.DOM.TypeDefs
-    , module Text.XML.HXT.DOM.XmlTreeTypes
-    )
-
-where
-
-import Data.Tree.NTree.Filter
-import Text.XML.HXT.DOM.TypeDefs
-
--- aliases for compatiblility reasons
-
-mkNode		:: node -> NTrees node -> NTree node
-mkNode		= mkTree
-
-formatNTree	:: (node -> String) -> NTree node -> String
-formatNTree	= formatTree
-
-foldNTree	:: (a -> [b] -> b) -> NTree a -> b
-foldNTree 	= foldTree
-
-mapNTree	:: (a -> b) -> NTree a -> NTree b
-mapNTree 	= fmap
-
-nTreeToList	:: NTree a -> [a]
-nTreeToList	= nodesTree
-
-depthNTree	:: NTree a -> Int
-depthNTree	= depthTree
-
-cardNTree	:: NTree a -> Int
-cardNTree	= cardNTree
-
--- -----------------------------------------------------------------------------
---
--- Basic types for filters
-
--- | A functions that takes a node and returns a list of nodes
-
-type XmlFilter	= TFilter  XNode
-
--- | A function that takes a list of nodes and returns a list of nodes
-
-type XmlSFilter	= TSFilter XNode
-
-
--- -----------------------------------------------------------------------------
---
-
--- | Tag name
-type TagName	= QName
-
--- | Attribute name
-type AttrName	= QName
-
--- -----------------------------------------------------------------------------
-
--- | shortcut for 'qualifiedName'
-
-tName	:: QName -> String
-tName	= qualifiedName
-
--- | shortcut for 'qualifiedName'
-
-aName	:: QName -> String
-aName	= qualifiedName
-
--- -----------------------------------------------------------------------------
-
diff --git a/src/Text/XML/HXT/IO/GetFILE.hs b/src/Text/XML/HXT/IO/GetFILE.hs
--- a/src/Text/XML/HXT/IO/GetFILE.hs
+++ b/src/Text/XML/HXT/IO/GetFILE.hs
@@ -1,40 +1,55 @@
 -- ------------------------------------------------------------
---
--- GET for local file access
---
--- Version : $Id: GetFILE.hs,v 1.6 2006/09/04 06:03:03 hxml Exp $
 
+{- |
+   Module     : Text.XML.HXT.IO.GetFILE
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   The GET method for file protocol
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.IO.GetFILE
-    ( module Text.XML.HXT.IO.GetFILE
+    ( getStdinCont
+    , getCont
     )
 
 where
 
-import System.IO
-    ( IOMode(..)
-    , openFile
-    -- , getContents  is defined in the prelude
-    , hGetContents
-    )
+import qualified Data.ByteString        as B
+import qualified Data.ByteString.Char8  as C
 
-import System.IO.Error
-    ( ioeGetErrorString
-    , try
-    )
+import           System.IO		( IOMode(..)
+					, openFile
+					  -- , getContents  is defined in the prelude
+					, hGetContents
+					)
 
-import System.Directory
-    ( doesFileExist
-    , getPermissions
-    , readable
-    )
+import           System.IO.Error	( ioeGetErrorString
+					, try
+					)
 
+import           System.Directory	( doesFileExist
+					, getPermissions
+					, readable
+					)
+
 -- ------------------------------------------------------------
 
-getStdinCont		:: IO (Either String String)
-getStdinCont
+getStdinCont		:: Bool -> IO (Either String String)
+getStdinCont strictInput
     = do
-      c <- try ( do
-		 getContents
+      c <- try ( if strictInput
+		 then do
+		      cb <- B.getContents
+		      return  (C.unpack cb)
+		 else getContents
 	       )
       return (either readErr Right c)
     where
@@ -43,8 +58,8 @@
 		 ++ ioeGetErrorString e
 	       )
 
-getCont		:: String -> IO (Either String String)
-getCont source
+getCont		:: Bool -> String -> IO (Either String String)
+getCont strictInput source
     = do			-- preliminary
       exists <- doesFileExist source'
       if not exists
@@ -54,12 +69,17 @@
 	      if not (readable perm)
 	         then return (Left ("file " ++ show source' ++ " not readable"))
 	         else do
-		      c <- try ( do
-				 h <- openFile source' ReadMode
-				 hGetContents h
+		      c <- try ( if strictInput
+				 then do
+				      cb <- B.readFile source
+				      return (C.unpack cb)
+				 else do
+				      h <- openFile source' ReadMode
+				      hGetContents h
 			       )
 		      return (either readErr Right c)
     where
+
     -- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source
     source' = drivePath $ source
     readErr e
diff --git a/src/Text/XML/HXT/Parser/TagSoup.hs b/src/Text/XML/HXT/Parser/TagSoup.hs
--- a/src/Text/XML/HXT/Parser/TagSoup.hs
+++ b/src/Text/XML/HXT/Parser/TagSoup.hs
@@ -2,7 +2,7 @@
 
 {- |
    Module     : Text.XML.HXT.Parser.TagSoup
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
@@ -23,60 +23,41 @@
 
 -- ------------------------------------------------------------
 
-import           Data.Char (toLower)
-import           Data.Maybe
-import qualified Data.Map as M
-
+import Data.Char (toLower)
+import Data.Maybe
 
 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.HTML.TagSoup.Entity		( lookupNumericEntity
+					)
+import Text.XML.HXT.DOM.Unicode		( isXmlSpaceChar
+					)
+import Text.XML.HXT.Parser.HtmlParsec	( isEmptyHtmlTag
+					, isInnerHtmlTagOf
+					, closesHtmlTag
+					)
 import Text.XML.HXT.Parser.XhtmlEntities
-    ( xhtmlEntities
-    )
-
-import Text.XML.HXT.Parser.HtmlParsec
-    ( isEmptyHtmlTag
-    , isInnerHtmlTagOf
-    , closesHtmlTag
-    )
-
-import Text.XML.HXT.DOM.Interface
-    ( XmlTrees
-    , QName
-    , NsEnv
-    , mkQName
-    , mkName
-    , mkPrefixLocalPart
-    , c_warn
-    , a_xml
-    , a_xmlns
-    , xmlNamespace
-    , xmlnsNamespace
-    )
-
-import Text.XML.HXT.DOM.XmlNode
-    ( isElem
-    , mkError
-    , mkCmt
-    , mkText
-    , mkElement
-    , mkAttr
-    )
+import Text.XML.HXT.DOM.Interface	( XmlTrees
+					, QName
+					, NsEnv
+					, toNsEnv
+					, newXName
+					, nullXName
+					, mkQName'
+					, mkName
+					, isWellformedQualifiedName
+					, c_warn
+					, a_xml
+					, a_xmlns
+					, xmlNamespace
+					, xmlnsNamespace
+					)
+import Text.XML.HXT.DOM.XmlNode		( isElem
+					, mkError
+					, mkCmt
+					, mkText
+					, mkElement
+					, mkAttr
+					)
 
 -- ---------------------------------------- 
 
@@ -84,15 +65,13 @@
 -- the first time they are ecountered, and later always this name is used,
 -- not a string built by the parser.
 
-type Tags	= [Tag]
-
-type NameTable	= M.Map QName QName
+type Tags		= [Tag]
 
-type Context	= ([String], NsEnv)
+type Context		= ([String], NsEnv)
 
-data State	= S !Tags !NameTable		-- the name table must be evaluated striktly, else a stack overflow occurs
+type State		= Tags
 
-newtype Parser a = P { parse :: State -> (a, State)}
+newtype Parser a 	= P { parse :: State -> (a, State)}
 
 instance Monad Parser where
     return x	= P $ \ ts -> (x, ts)
@@ -102,7 +81,7 @@
 			      parse (f res) ts'
 
 runParser	:: Parser a -> Tags -> a
-runParser p ts	= fst . parse p $ S ts M.empty
+runParser p ts	= fst . parse p $ ts
 
 -- ----------------------------------------
 
@@ -112,13 +91,13 @@
 		  if p then t else e
 
 lookAhead	:: (Tag -> Bool) -> Parser Bool
-lookAhead p	= P $ \ s@(S ts _) -> (not (null ts) && p (head ts), s)
+lookAhead p	= P $ \ s -> (not (null s) && p (head s), s)
 
 -- ----------------------------------------
 -- primitive look ahead tests
 
 isEof		:: Parser Bool
-isEof		= P $ \ s@(S ts _) -> (null ts, s)
+isEof		= P $ \ s -> (null s, s)
 
 isText		:: Parser Bool
 isText		= lookAhead is
@@ -160,7 +139,7 @@
 -- primitive symbol parsers
 
 getTag		:: Parser Tag
-getTag		= P $ \ (S (t1:ts1) nt) -> (t1, S ts1 nt)
+getTag		= P $ \ (t1:ts1) -> (t1, ts1)
 
 getSym		:: (Tag -> a) -> Parser a
 getSym f	= do
@@ -207,7 +186,7 @@
 -- pushback parsers for inserting missing tags
 
 pushBack	:: Tag -> Parser ()
-pushBack t	= P $ \ (S ts nt) -> ((), S (t:ts) nt)
+pushBack t	= P $ \ ts -> ((), t:ts)
 
 insCls		:: String -> Parser ()
 insCls n	= pushBack (TagClose n)
@@ -217,43 +196,31 @@
 
 -- ----------------------------------------
 
-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
+	= return qn1
     | otherwise
-	= insertQName qn0
+	= return 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
+	| isAttr && isSimpleName	= s'
+	| isSimpleName			= mkQName' nullXName (newXName s) (nsUri nullXName)
+	| isWellformedQualifiedName s	= mkQName' px'        lp'         (nsUri px')
+	| otherwise			= s'
+    qn0					= s'
 
-    nsUri x		= fromMaybe "" . lookup x $ env
-    isSimpleName	= all (/= ':') s
-    (px, (_ : lp))	= span(/= ':') s
+    nsUri x				= fromMaybe nullXName . lookup x $ env
+    isSimpleName			= all (/= ':') s
+    (px, (_ : lp))			= span(/= ':') s
+    px'                 		= newXName px
+    lp'                 		= newXName lp
+    s'                                  = mkName   s
 
 extendNsEnv	:: Bool -> [(String, String)] -> NsEnv -> NsEnv
 extendNsEnv withNamespaces al1 env
     | withNamespaces
-	= concatMap (uncurry addNs) al1 ++ env
+	= toNsEnv (concatMap (uncurry addNs) al1) ++ env
     | otherwise
 	= env
     where
@@ -336,7 +303,8 @@
 	= take 1 . filter isElem
 
     initContext		= ( []
-			  , [ (a_xml,   xmlNamespace)
+			  , toNsEnv $
+			    [ (a_xml,   xmlNamespace)
 			    , (a_xmlns, xmlnsNamespace)
 			    ]
 			  )
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
@@ -89,7 +89,7 @@
 	( processHref $< getBaseURI )
 	>>>
 	-- 4.10 QNames
-	processWithNsEnv processEnvNames [("xml",xmlNamespace)]
+	processWithNsEnv processEnvNames (toNsEnv [("xml",xmlNamespace)])
 	>>>
 	-- 4.4 For any data or value element that does not have a datatypeLibrary attribute,
 	-- a datatypeLibrary attribute is added.
@@ -229,7 +229,7 @@
                 )
 	      )
 
-    processEnvNames :: [(String, String)] -> IOSArrow XmlTree XmlTree
+    processEnvNames :: NsEnv -> IOSArrow XmlTree XmlTree
     processEnvNames env
 	= ( ( (replaceQNames env $< getAttrValue "name")
               `when`
@@ -252,29 +252,29 @@
 	    = setBaseUri &&& constA (map createAttr env) >>> arr2L (:)
 	    where
 
-	    createAttr :: (String, String) -> XmlTree
+	    createAttr :: (XName, XName) -> XmlTree
 	    createAttr (pre, uri)
-		= XN.mkAttr (mkName nm) [XN.mkText uri]
+		= XN.mkAttr (mkName nm) [XN.mkText (show uri)]
 		where
-		nm  | null pre	= "RelaxContextDefault"
-		    | otherwise	= contextAttributes ++ pre
+		nm  | isNullXName pre	= "RelaxContextDefault"
+		    | otherwise		= contextAttributes ++ show pre
 
 	    setBaseUri :: IOSArrow String XmlTree
 	    setBaseUri = mkAttr (mkName contextBaseAttr) (txt $< this)
 
-	replaceQNames :: [(String, String)] -> String -> IOSArrow XmlTree XmlTree                        
+	replaceQNames :: NsEnv -> String -> IOSArrow XmlTree XmlTree                        
 	replaceQNames e name
 	    | isNothing uri
 		= mkRelaxError "" ( "No Namespace-Mapping for the prefix " ++ show pre ++ 
 				    " in the Context of Element: " ++ show name
 				  )
 	    | otherwise
-		= addAttr "name" ( "{" ++ (fromJust uri) ++ "}" ++ local )
+		= addAttr "name" ( "{" ++ (show . fromJust $ uri) ++ "}" ++ local )
 	    where
 	    (pre, local') = span (/= ':') name
 	    local         = tail local'
-	    uri 	:: Maybe String
-	    uri           = lookup pre e
+	    uri 	:: Maybe XName
+	    uri           = lookup (newXName pre) e
 
     -- The value of the added datatypeLibrary attribute is the value of the 
     -- datatypeLibrary attribute of the nearest ancestor element that 
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
@@ -54,25 +54,21 @@
   )
 where
 
-import Text.XML.HXT.RelaxNG.DataTypeLibUtils  
-
-import Network.URI
-  ( isURIReference )
+import Data.Maybe
+import Data.Ratio
 
-import Text.XML.HXT.DOM.NamespacePredicates
-  ( isWellformedQualifiedName
-  , isNCName
-  )
+import Network.URI				( isURIReference )
 
-import Text.XML.HXT.RelaxNG.XmlSchema.Regex
-    ( Regex
-    , matchWithRE
-    )
+import Text.XML.HXT.DOM.QualifiedName		( isWellformedQualifiedName
+						, isNCName
+						)
+import Text.XML.HXT.RelaxNG.DataTypeLibUtils
+import Text.XML.HXT.RelaxNG.XmlSchema.Regex	( Regex
+						, matchWithRE
+						)
 import Text.XML.HXT.RelaxNG.XmlSchema.RegexParser
-    ( parseRegex )
-
-import Data.Maybe
-import Data.Ratio
+                                                ( parseRegex
+						)
   
 -- ------------------------------------------------------------
 
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
@@ -39,6 +39,8 @@
     , nullable
     , delta
     , matchWithRE
+    , (<&&>)
+    , (<||>)
     )
 where
 
@@ -80,68 +82,74 @@
     inv (Dif e1 e2)	= inv e1 &&
 			  inv e2
 -}
--- ------------------------------------------------------------
---
--- smart constructors
 
+-- ------------------------------------------------------------
 -- | enumerate all chars specified by a predicate
 --
 -- this function is expensive, it should only be used for testing
 
-chars		:: (Char -> Bool) -> [Char]
-chars p		= filter p $ [minBound .. maxBound]
+chars				:: (Char -> Bool) -> [Char]
+chars p				= filter p $ [minBound .. maxBound]
 
-charRngs	:: [Char] -> [(Char, Char)]
-charRngs []	= []
-charRngs (x:xs)	= charRng x xs
-                  where
-		  charRng y []		= (x,y) : []
-		  charRng y xs'@(x1:xs1)
-		      | x1 == succ y	= charRng x1 xs1
-		      | otherwise	= (x,y) : charRngs xs'
+charRngs			:: [Char] -> [(Char, Char)]
+charRngs []			= []
+charRngs (x:xs)			= charRng x xs
+                  		where
+		  		charRng y []		= (x,y) : []
+		  		charRng y xs'@(x1:xs1)
+		      		    | x1 == succ y	= charRng x1 xs1
+				    | otherwise		= (x,y) : charRngs xs'
 
-mkZero		:: String -> Regex
-mkZero		= Zero
+-- ------------------------------------------------------------
+--
+-- smart constructors
 
-mkUnit		:: Regex
-mkUnit		= Unit
+mkZero				:: String -> Regex
+mkZero				= Zero
+{-# INLINE mkZero #-}
 
-mkSym		:: (Char -> Bool) -> Regex
-mkSym		= Sym
+mkUnit				:: Regex
+mkUnit				= Unit
+{-# INLINE mkUnit #-}
 
-mkSym1		:: Char	-> Regex
-mkSym1	c	= mkSym (==c)
+mkSym				:: (Char -> Bool) -> Regex
+mkSym				= Sym
+{-# INLINE mkSym #-}
 
-mkSymRng	:: Char -> Char -> Regex
+mkSym1				:: Char	-> Regex
+mkSym1	c			= mkSym (==c)
+
+mkSymRng			:: Char -> Char -> Regex
 mkSymRng c1 c2
     | c1 == minBound &&
-      c2 == maxBound	= mkDot
-    | c1 <= c2		= mkSym  $ ( \ x -> x >= c1 && x<= c2 )
-    | otherwise		= mkZero $ "empty char range"
+      c2 == maxBound		= mkDot
+    | c1 <= c2			= mkSym  $ (>= c1) <&&> (<= c2)
+    | otherwise			= mkZero $ "empty char range"
 
-mkDot	:: Regex
-mkDot	= Dot
+mkDot				:: Regex
+mkDot				= Dot
+{-# INLINE mkDot #-}
 
-mkStar			:: Regex -> Regex
-mkStar (Zero _)		= mkUnit		-- {}* == ()
-mkStar e@Unit		= e			-- ()* == ()
-mkStar e@(Star _e1)	= e			-- (r*)* == r*
-mkStar (Rep 1 e1)	= mkStar e1		-- (r+)* == r*
-mkStar e@(Alt _ _)	= Star (rmStar e)	-- (a*|b)* == (a|b)*
-mkStar e		= Star e
+mkStar				:: Regex -> Regex
+mkStar (Zero _)			= mkUnit		-- {}* == ()
+mkStar e@Unit			= e			-- ()* == ()
+mkStar e@(Star _e1)		= e			-- (r*)* == r*
+mkStar (Rep 1 e1)		= mkStar e1		-- (r+)* == r*
+mkStar e@(Alt _ _)		= Star (rmStar e)	-- (a*|b)* == (a|b)*
+mkStar e			= Star e
 
-rmStar	:: Regex -> Regex
-rmStar (Alt e1 e2)	= mkAlt (rmStar e1) (rmStar e2)
-rmStar (Star e1)	= rmStar e1
-rmStar (Rep 1 e1)	= rmStar e1
-rmStar e1		= e1
+rmStar				:: Regex -> Regex
+rmStar (Alt e1 e2)		= mkAlt (rmStar e1) (rmStar e2)
+rmStar (Star e1)		= rmStar e1
+rmStar (Rep 1 e1)		= rmStar e1
+rmStar e1			= e1
 
 mkAlt					:: Regex -> Regex -> Regex
 mkAlt e1            (Zero _)		= e1				-- e1 u {} = e1
 mkAlt (Zero _)      e2			= e2				-- {} u e2 = e2
 mkAlt e1@(Star Dot) _e2			= e1				-- A* u e1 = A*
 mkAlt _e1           e2@(Star Dot)	= e2				-- e1 u A* = A*
-mkAlt (Sym p1)      (Sym p2)		= mkSym $ \ x -> p1 x || p2 x	-- melting of predicates
+mkAlt (Sym p1)      (Sym p2)		= mkSym $ p1 <||> p2		-- melting of predicates
 mkAlt e1            e2@(Sym _)		= mkAlt e2 e1			-- symmetry: predicates always first
 mkAlt e1@(Sym _)    (Alt e2@(Sym _) e3)	= mkAlt (mkAlt e1 e2) e3	-- prepare melting of predicates
 mkAlt (Alt e1 e2)   e3			= mkAlt e1 (mkAlt e2 e3)	-- associativity
@@ -172,8 +180,8 @@
 mkRng _l _u e@Unit		= e
 mkRng lb ub e			= Rng lb ub e
 
-mkOpt	:: Regex -> Regex
-mkOpt	= mkRng 0 1
+mkOpt				:: Regex -> Regex
+mkOpt				= mkRng 0 1
 
 mkDif	:: Regex -> Regex -> Regex
 mkDif e1@(Zero _) _e2		= e1
@@ -186,8 +194,8 @@
 				= mkZero "empty set of chars in difference expr"
 mkDif e1          e2		= Dif e1 e2
 
-mkCompl		:: Regex -> Regex
-mkCompl		= mkDif mkDot
+mkCompl				:: Regex -> Regex
+mkCompl				= mkDif mkDot
 
 -- ------------------------------------------------------------
 
@@ -231,6 +239,7 @@
 isZero			:: Regex -> Bool
 isZero (Zero _)		= True
 isZero _		= False
+{-# INLINE isZero #-}
 
 nullable		:: Regex -> Bool
 nullable (Zero _)	= False
@@ -291,5 +300,18 @@
     res re
 	| nullable re	= Nothing	-- o.k.
 	| otherwise	= Just $ "input does not match " ++ show e
+
+-- ------------------------------------------------------------
+
+(<&&>)		:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)
+f <&&> g	= \ x -> f x && g x		-- liftA2 (&&)
+
+{-# INLINE (<&&>) #-}
+
+
+(<||>)		:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)
+f <||> g	= \ x -> f x || g x		-- liftA2 (||)
+
+{-# INLINE (<||>) #-}
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexMatch.hs b/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexMatch.hs
--- a/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexMatch.hs
+++ b/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexMatch.hs
@@ -37,8 +37,11 @@
 import Text.XML.HXT.RelaxNG.XmlSchema.Regex
 import Text.XML.HXT.RelaxNG.XmlSchema.RegexParser
 
--- ------------------------------------------------------------
+{-
+import qualified Debug.Trace as T
+-}
 
+-- ------------------------------------------------------------
 
 splitRegex		:: Regex -> String -> Maybe (String, String)
 splitRegex re ""
@@ -47,14 +50,16 @@
 
 splitRegex re inp@(c : inp')
     | isZero   re	= Nothing
-    | otherwise		= evalRes . splitRegex (delta re c) $ inp'
+    | otherwise		= evalRes . splitRegex {- (T.trace (show re') re') -} re' $ inp'
     where
+    re' = delta re c
     evalRes Nothing
 	| nullable re	= Just ("", inp)
 	| otherwise	= Nothing
 
     evalRes (Just (tok, rest))
 	    		= Just (c : tok, rest)
+
 -- ------------------------------------------------------------
 
 -- | split a string by taking the longest prefix matching a regular expression
@@ -65,7 +70,8 @@
 -- examples:
 --
 -- > splitRE "a*b" "abc" = Just ("ab","c")
--- > splitRE "a*"  "bc"  = Just ("", "bc)
+-- > splitRE "a*"  "bc"  = Just ("", "bc")
+-- > splitRE "a+"  "bc"  = Nothing
 -- > splitRE "["   "abc" = Nothing
 
 splitRE	:: String -> String -> Maybe (String, String)
@@ -116,10 +122,11 @@
 	| null inp	= []
 	| otherwise	= evalRes . splitRegex re $ inp
 	where
-	evalRes Nothing	= token' re (tail inp)	-- re does not match any prefix
+	token''         = token' re
+	evalRes Nothing	= token'' (tail inp)		-- re does not match any prefix
 	evalRes (Just (tok, rest))
-	    | null tok	= token' re (tail rest)	-- re is nullable and only the empty prefix matches
-	    | otherwise	= tok : token' re rest	-- token found, tokenize the rest
+	    | null tok	= token'' (tail rest)		-- re is nullable and only the empty prefix matches
+	    | otherwise	= tok : token'' rest		-- token found, tokenize the rest
 
 -- | convenient function for tokenizeRE a string
 --
@@ -229,4 +236,3 @@
 
 -- ------------------------------------------------------------
 
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs b/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs
--- a/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs
+++ b/src/Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs
@@ -22,8 +22,8 @@
     ( parseRegex )
 where
 
-import Control.Applicative ( liftA2 )
 import Data.Maybe
+
 import Text.ParserCombinators.Parsec
 
 import Text.XML.HXT.DOM.Unicode
@@ -176,9 +176,9 @@
 	 , ('w', not . isNotWord		)
 	 , ('W',       isNotWord		)
 	 ]
-    isDigit   = ('0' <=) &&& (<= '9')
-    isNotWord = isUnicodeP |||
-		isUnicodeZ |||
+    isDigit   = ('0' <=) <&&> (<= '9')
+    isNotWord = isUnicodeP <||>
+		isUnicodeZ <||>
 		isUnicodeC
 
 catEsc	:: Parser Regex
@@ -204,7 +204,7 @@
 	 then return $ let
 		       (lb, ub) = fromJust b
 		       in
-		       (lb <=) &&& (<= ub)
+		       (lb <=) <&&> (<= ub)
 	 else fail   $ "unknown Unicode code block " ++ show name
     where
     legalChar c	 = 'A' <= c && c <= 'Z' ||
@@ -350,13 +350,5 @@
       char '.'
       return $ mkSym (`notElem` "\n\r")
 
-
--- ------------------------------------------------------------
-
-(&&&)	:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)
-(&&&)	= liftA2 (&&)
-
-(|||)	:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)
-(|||)	= liftA2 (||)
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Version.hs b/src/Text/XML/HXT/Version.hs
--- a/src/Text/XML/HXT/Version.hs
+++ b/src/Text/XML/HXT/Version.hs
@@ -1,4 +1,4 @@
 module Text.XML.HXT.Version
 where
 hxt_version :: String
-hxt_version = "8.2.0"
+hxt_version = "8.3.0"
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
@@ -95,10 +95,10 @@
 -- Works like 'getXPath' but the prefix:localpart names in the XPath expression
 -- are interpreted with respect to the given namespace environment
 
-getXPathWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlTrees
+getXPathWithNsEnv	:: Attributes -> String -> XmlTree -> XmlTrees
 getXPathWithNsEnv env s	= runLA ( canonicalizeForXPath
 				  >>>
-				  arrL (getXPathValues xPValue2XmlTrees xPathErr env s)
+				  arrL (getXPathValues xPValue2XmlTrees xPathErr (toNsEnv env) s)
 				)
 
 -- |
@@ -119,9 +119,9 @@
 
 -- | Same as 'getXPathSubTrees' but with namespace aware XPath expression
 
-getXPathSubTreesWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlTrees
+getXPathSubTreesWithNsEnv	:: Attributes -> String -> XmlTree -> XmlTrees
 getXPathSubTreesWithNsEnv nsEnv xpStr
-    = getXPathValues xPValue2XmlTrees xPathErr nsEnv xpStr
+    = getXPathValues xPValue2XmlTrees xPathErr (toNsEnv nsEnv) xpStr
 
 -- | compute the node set of an XPath query
 
@@ -130,9 +130,9 @@
 
 -- | compute the node set of a namespace aware XPath query
 
-getXPathNodeSetWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlNodeSet
+getXPathNodeSetWithNsEnv	:: Attributes -> String -> XmlTree -> XmlNodeSet
 getXPathNodeSetWithNsEnv nsEnv xpStr
-    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) nsEnv xpStr
+    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) (toNsEnv nsEnv) xpStr
 
 -- | parse xpath, evaluate xpath expr and prepare results
 
diff --git a/src/Text/XML/HXT/XPath/XPathParser.hs b/src/Text/XML/HXT/XPath/XPathParser.hs
--- a/src/Text/XML/HXT/XPath/XPathParser.hs
+++ b/src/Text/XML/HXT/XPath/XPathParser.hs
@@ -2,13 +2,12 @@
 
 {- |
    Module     : Text.XML.HXT.XPath.XPathParser
-   Copyright  : Copyright (C) 2006 Uwe Schmidt
+   Copyright  : Copyright (C) 2006-2008 Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: XPathParser.hs,v 1.6 2006/10/12 11:51:29 hxml Exp $
 
    the XPath Parser
 
@@ -39,27 +38,26 @@
     , qName
     )
 
-lookupNs		:: NsEnv -> String -> String
+lookupNs				:: NsEnv -> XName -> XName
 lookupNs uris prefix
-    -- downwards compatibility: if namespace env is not supported
-    -- no error is raised, but the uri remains empty
-    -- not conformant to XPath spec: If namespaces are used, an complete env must be supported,
-    -- but we don't care about this
-
-    = lookup1 prefix uris
+					-- downwards compatibility: if namespace env is not supported
+					-- no error is raised, but the uri remains empty
+					-- not conformant to XPath spec:
+					-- If namespaces are used, a complete env must be supported,
+					-- but we don't care about this
+					= fromMaybe nullXName $ lookup prefix uris
 
-enhanceAttrQName	:: NsEnv -> QName -> QName
+enhanceAttrQName			:: NsEnv -> QName -> QName
 enhanceAttrQName uris qn
-    | null (namePrefix qn)	= qn
-    | otherwise			= enhanceQName uris qn
+    | isNullXName (namePrefix' qn)	= qn
+    | otherwise				= enhanceQName uris qn
 
-enhanceQName 		:: NsEnv -> QName -> QName
-enhanceQName uris qn
-    = qn {namespaceUri = lookupNs uris (namePrefix qn)}
+enhanceQName 				:: NsEnv -> QName -> QName
+enhanceQName uris qn			= setNamespaceUri' ( lookupNs uris (namePrefix' qn) ) qn
 
-enhanceQN		::  AxisSpec -> NsEnv -> QName -> QName
-enhanceQN Attribute	= enhanceAttrQName
-enhanceQN _		= enhanceQName
+enhanceQN				::  AxisSpec -> NsEnv -> QName -> QName
+enhanceQN Attribute			= enhanceAttrQName
+enhanceQN _				= enhanceQName
 
 type XParser a = GenParser Char NsEnv a
 
@@ -591,7 +589,9 @@
     = try ( do           
             (p, n) <- qName
             uris   <- getState
-            u      <- return $ if null p then "" else '{' : lookupNs uris p ++ "}"
+            u      <- return $ if null p
+	                       then ""
+                               else '{' : show (lookupNs uris (newXName p)) ++ "}"
             let fn = (u ++ n) in
               if fn `elem` ["processing-instruction", "comment", "text", "node"]
                 then fail ("function name: " ++ fn ++ "not allowed")
@@ -607,29 +607,27 @@
       tokenParser (symbol "$")
       (p,n) <- qName
       uris   <- getState
-      return (lookupNs uris p, n)
+      return (show (lookupNs uris (newXName p)), n)
       <?> "variableReference"
 
 
 -- [37] NameTest
 nameTest :: AxisSpec -> XParser QName
 nameTest as
-    = do
-      tokenParser (symbol "*")
-      uris <- getState
-      return (enhanceQN as uris $ mkName "*")
-      <|> try ( do
-                  pre <- ncName
-                  symbol ":*"
-                  uris <- getState
-                  return (enhanceQN as uris $ mkNsName (pre ++ ":*") "")                
-              )
+    = do tokenParser (symbol "*")
+	 uris <- getState
+	 return (enhanceQN as uris $ mkPrefixLocalPart "" "*")
       <|>
-      do
-      (pre,local) <- qName      	      
-      uris <- getState
-      return (enhanceQN as uris $ mkNsName (pre ++ ":" ++ local) "")
-      <?> "nameTest"	
+      try ( do pre <- ncName
+               symbol ":*"
+               uris <- getState
+               return (enhanceQN as uris $ mkPrefixLocalPart pre "*")
+	  )
+      <|>
+      do (pre,local) <- qName
+	 uris <- getState
+	 return (enhanceQN as uris $ mkPrefixLocalPart pre local)
+      <?> "nameTest"
 
 	
 -- [38] NodeType
@@ -650,3 +648,5 @@
              , symbolParser (n_node, XPNode)
              ]
       <?> "nodeType"
+
+-- ------------------------------------------------------------
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
@@ -2,13 +2,12 @@
 
 {- |
    Module     : Text.XML.HXT.XSLT.Application
-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt
+   Copyright  : Copyright (C) 2006-2008 Tim Walkenhorst, Uwe Schmidt
    License    : MIT
 
    Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: Common.hs,v 1.5 2007/05/02 06:41:05 hxml Exp $
 
    Common imports and functions for HXSLT
 
@@ -87,69 +86,73 @@
 import Control.Arrow.ListArrow
 import Control.Arrow.ArrowList
 
-import Text.XML.HXT.Arrow.XmlArrow
-    ( xshow
-    )
-import Text.XML.HXT.DOM.XmlNode
-    ( XmlNode (..)
-    , mkElement
-    , mkRoot
-    , mkAttr
-    , mergeAttrl
-    )
+import Text.XML.HXT.Arrow.XmlArrow	( xshow
+					)
 import Text.XML.HXT.DOM.XmlKeywords
-
-import Text.XML.HXT.DOM.TypeDefs
-    ( XmlTree
-    , XNode(XTag, XAttr)
-    , QName(namePrefix, localPart, namespaceUri)
-    , equivQName
-    , mkName
-    , mkQName
-    )
-
-import Text.XML.HXT.DOM.FormatXmlTree
-    ( formatXmlTree )
-
-import Text.XML.HXT.XPath.XPathDataTypes
-    ( Expr(LiteralExpr, FctExpr, GenExpr, PathExpr)
-    , Op(Union)
-    , LocationPath (LocPath)
-    , Path (Rel)
-    , XStep (Step)
-    , NodeTest (NameTest, PI, TypeTest)
-    , NavXmlTree
-    , XPathValue(XPVNode, XPVBool, XPVString, XPVError)
-    )
-
-import Text.XML.HXT.XPath.XPathParser
-    ( parseXPath )
-
-import Text.XML.HXT.XPath.XPathEval
-    ( evalExpr )
+import Text.XML.HXT.DOM.XmlNode		( XmlNode (..)
+					, mkElement
+					, mkRoot
+					, mkAttr
+					, mergeAttrl
+					)
 
-import Text.XML.HXT.XPath.XPathFct
-    ( isNotInNodeList )
+import Text.XML.HXT.DOM.TypeDefs	( XmlTree
+					, XNode(XTag, XAttr)
+					, QName
+					, toNsEnv
+					, namePrefix
+					, localPart
+					, namespaceUri
+					, equivQName
+					, mkName
+					, mkQName
+					)
+import Text.XML.HXT.DOM.FormatXmlTree	( formatXmlTree
+					)
 
-import Text.XML.HXT.XPath.XPathToString
-    ( xPValue2XmlTrees )
+import Text.XML.HXT.XPath.XPathDataTypes( Expr		( LiteralExpr
+							, FctExpr
+							, GenExpr
+							, PathExpr
+							)
+					, Op		( Union )
+					, LocationPath	( LocPath )
+					, Path		( Rel )
+					, XStep 	( Step )
+					, NodeTest	( NameTest
+							, PI
+							, TypeTest
+							)
+					, NavXmlTree
+					, XPathValue	( XPVNode
+							, XPVBool
+							, XPVString
+							, XPVError
+							)
+					)
+import Text.XML.HXT.XPath.XPathParser	( parseXPath
+					)
+import Text.XML.HXT.XPath.XPathEval	( evalExpr
+					)
+import Text.XML.HXT.XPath.XPathFct	( isNotInNodeList
+					)
+import Text.XML.HXT.XPath.XPathToString ( xPValue2XmlTrees
+					)
 
-import Data.Map (Map)
+import           Data.Map (Map)
 import qualified Data.Map as Map hiding (Map)
 
 import Data.Tree.Class 
 
-import Data.NavTree
-    ( NavTree
-    , ntree
-    , subtreeNT
-    , upNT
-    , downNT
-    , rightNT
-    , leftNT
-    , getChildrenNT
-    )
-
+import Data.NavTree			( NavTree
+					, ntree
+					, subtreeNT
+					, upNT
+					, downNT
+					, rightNT
+					, leftNT
+					, getChildrenNT
+					)
 import Data.Maybe
 import Data.List
 import Data.Char
diff --git a/src/Text/XML/HXT/XSLT/Compilation.hs b/src/Text/XML/HXT/XSLT/Compilation.hs
--- a/src/Text/XML/HXT/XSLT/Compilation.hs
+++ b/src/Text/XML/HXT/XSLT/Compilation.hs
@@ -8,7 +8,6 @@
    Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: Compilation.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $
 
    The compilation functions for XSLT stylesheets
 
@@ -22,19 +21,19 @@
     )
 where
 
-import Control.Monad
+import           Control.Monad
 
-import Data.Maybe
-import Data.Either
-import Data.List
+import           Data.Maybe
+import           Data.Either
+import           Data.List
 import qualified Data.Map as Map hiding (Map)
-import Data.Map(Map)
+import           Data.Map(Map)
 
-import Text.ParserCombinators.Parsec.Prim(runParser)
+import           Text.ParserCombinators.Parsec.Prim	( runParser )
 
-import Text.XML.HXT.XSLT.Common
-import Text.XML.HXT.XSLT.Names
-import Text.XML.HXT.XSLT.CompiledStylesheet
+import           Text.XML.HXT.XSLT.Common
+import           Text.XML.HXT.XSLT.Names
+import           Text.XML.HXT.XSLT.CompiledStylesheet
 
 -- No deep meaning just a shortcut notation for a *very* common expression...
 
@@ -50,7 +49,7 @@
 parseExpr uris selectStr
     = either (error.show) id parseResult                               
     where
-    parseResult = runParser parseXPath (Map.toList uris) ("select-expr:"++selectStr) selectStr 
+    parseResult = runParser parseXPath (toNsEnv . Map.toList $ uris) ("select-expr:"++selectStr) selectStr 
 
 parseSelect :: UriMapping -> String -> SelectExpr
 parseSelect uris
diff --git a/src/hxt-package.hs b/src/hxt-package.hs
--- a/src/hxt-package.hs
+++ b/src/hxt-package.hs
@@ -61,7 +61,7 @@
       , "depends: base-4.0.0.0,"
       , "         haskell98-1.0.1.0,"
       , "         bytestring-0.9.1.4,"
-      , "         parallel-1.0.0.1,"
+      , "         parallel-1.1.0.0,"
       , "         parsec-2.1.0.1,"
       , "         network-2.2.0.1,"
       , "         containers-0.2.0.0,"
